private Collection<String> getParents(ProcedureEntity procedure) { Set<String> parentProcedures = Sets.newTreeSet(); if (procedure.hasParents()) { for (ProcedureEntity parentEntity : procedure.getParents()) { parentProcedures.add(parentEntity.getIdentifier()); parentProcedures.addAll(getParents(parentEntity)); } } return parentProcedures; }
private Set<? extends HierarchicalParameterOutput> getProcedureParents(ProcedureEntity entity, DbQuery dbQuery) { return !entity.hasParents() ? Collections.singleton(createCondensed(new ProcedureOutput(), entity, dbQuery)) : new HashSet<>(entity.getParents().stream() .map(e -> createCondensed(new ProcedureOutput(), e, dbQuery)) .collect(Collectors.toSet())); }
private Set<String> getParentOfferings(ProcedureEntity hProcedure) { Set<String> parentOfferings = new HashSet<>(); if (hProcedure.hasParents()) { for (ProcedureEntity proc : hProcedure.getParents()) { parentOfferings.addAll(getCache().getOfferingsForProcedure(proc.getIdentifier())); } } return parentOfferings; }
private Set<String> getAllParentOfferings(ProcedureEntity hProcedure) { Set<String> parentOfferings = new HashSet<>(); if (hProcedure.hasParents()) { for (ProcedureEntity proc : hProcedure.getParents()) { parentOfferings.addAll(getCache().getOfferingsForProcedure(proc.getIdentifier())); parentOfferings.addAll(getParentOfferings(hProcedure)); } } return parentOfferings; }
/** * Get parent procedures * * @throws OwsExceptionReport */ protected Set<String> getParentProcedures() throws OwsExceptionReport { Set<String> parents = new HashSet<>(); if (getProcedure().hasParents()) { for (ProcedureEntity parent : getProcedure().getParents()) { parents.add(parent.getIdentifier()); } } return parents; } }
public static Set<String> getAllProcedureIdentifiersFromDatasetEntitys( Collection<DatasetEntity> datasets, ProcedureFlag procedureFlag) { Set<String> procedures = new HashSet<String>(datasets.size()); for (DatasetEntity dataset : datasets) { if (dataset.getProcedure() != null) { boolean addProcedure = false; if (procedureFlag == null) { //add all procedures addProcedure = true; } else { if (procedureFlag.equals(ProcedureFlag.PARENT) && !dataset.getProcedure().hasParents()) { addProcedure = true; } else if (procedureFlag.equals(ProcedureFlag.HIDDEN_CHILD) && dataset.getProcedure().hasParents()) { addProcedure = true; } } if (addProcedure) { procedures.add(dataset.getProcedure().getIdentifier()); } } } return procedures; }
setTypeInstanceProcedure(procedure); Set<String> parents = new HashSet<>(); if (procedure.hasParents()) { getParents(parents, procedure); getCache().addParentProcedures(identifier, parents);
protected void getProcedureInformationFromDbAndAddItToCacheMaps() throws OwsExceptionReport { if (datasets != null) { String identifier = procedure.getIdentifier(); getCache().addProcedure(identifier); if (!datasets.isEmpty() && datasets.stream() .anyMatch(d -> d.isPublished() || d instanceof NotInitializedDataset && !d.isDeleted())) { getCache().addPublishedProcedure(identifier); } if (procedure.isSetName()) { getCache().addProcedureIdentifierHumanReadableName(identifier, procedure.getName()); } getCache().setOfferingsForProcedure(identifier, DatasourceCacheUpdateHelper .getAllOfferingIdentifiersFromDatasets(datasets)); getCache().setObservablePropertiesForProcedure(identifier, DatasourceCacheUpdateHelper .getAllObservablePropertyIdentifiersFromDatasets(datasets)); if (procedure.hasParents()) { Collection<String> parents = getParents(procedure); getCache().addParentProcedures(identifier, parents); getCache().addPublishedProcedures(parents); } TimePeriod phenomenonTime = new TimePeriod(); for (DatasetEntity dataset : datasets) { OfferingEntity offering = dataset.getOffering(); phenomenonTime.extendToContain( new TimePeriod(offering.getPhenomenonTimeStart(), offering.getPhenomenonTimeEnd())); } getCache().setMinPhenomenonTimeForProcedure(identifier, phenomenonTime.getStart()); getCache().setMaxPhenomenonTimeForProcedure(identifier, phenomenonTime.getEnd()); } }
if (!parentOfferings.isEmpty() && !allParentOfferings.isEmpty() && hProcedure.hasParents() && !allParentOfferings.contains(assignedOffering.getIdentifier()) && !parentOfferings.contains(assignedOffering.getIdentifier())) {