public Set<Individual<?,?>> allowedIndividuals(DataSet dataSet) { Set<Serializable> result=this.allowedIndividuals; if(result==null) { result=Sets.newLinkedHashSet(); } return ConstraintsHelper.getOrCreateIndividuals(dataSet,result); }
static Set<Individual<?, ?>> getOrCreateIndividuals(DataSet dataSet, Set<Serializable> individuals) { ImmutableSet.Builder<Individual<?, ?>> builder=ImmutableSet.builder(); populate(dataSet, individuals, builder); return builder.build(); }
private static void populate(DataSet dataSet, Collection<Serializable> individuals, ImmutableCollection.Builder<Individual<?,?>> builder) { for(Serializable node:individuals) { Individual<?,?> individual=dataSet.individualOfId(node); if(individual==null) { individual=createIndividual(dataSet, node); } builder.add(individual); } }
private static Individual<?, ?> createIndividual(DataSet dataSet, Serializable id) throws AssertionError { Individual<?,?> newIndividual=null; if(id instanceof ManagedIndividualId) { newIndividual=dataSet.individual((ManagedIndividualId)id,ManagedIndividual.class); } else if(id instanceof URI) { newIndividual=createIndividualOfUri((URI)id, dataSet); } else if(id instanceof Name<?>) { @SuppressWarnings("rawtypes") Name name = (Name)id; newIndividual=dataSet.individual(name,LocalIndividual.class); } else if(id instanceof RelativeIndividualId) { newIndividual=dataSet.individual((RelativeIndividualId)id,RelativeIndividual.class); } else { throw new AssertionError("Unsupported individual identifier type '"+id.getClass().getName()+"'"); } return newIndividual; }
public List<Individual<?,?>> individuals(DataSet dataSet) { List<Serializable> result=this.individuals; if(result==null) { result=Lists.newArrayList(); } return ConstraintsHelper.getOrCreateIndividuals(dataSet,result); }
static List<Individual<?, ?>> getOrCreateIndividuals(DataSet dataSet, List<Serializable> individuals) { ImmutableList.Builder<Individual<?, ?>> builder=ImmutableList.builder(); populate(dataSet, individuals, builder); return builder.build(); }
public Set<Individual<?,?>> nodes(DataSet dataSet) { checkNotNull(dataSet,"Data set cannot be null"); return ConstraintsHelper. getOrCreateIndividuals( dataSet, this.nodeShapes.keySet()); }