private void setAggregatedProcedure(ProcedureEntity procedure) { if (procedure.isAggregation()) { getCache().addComponentAggregationProcedure(SosContentCache.ComponentAggregation.AGGREGATION, procedure.getIdentifier()); } else { getCache().addComponentAggregationProcedure(SosContentCache.ComponentAggregation.COMPONENT, procedure.getIdentifier()); } }
final SosWritableContentCache cache = getCache(); final String resultTemplate = response.getAcceptedTemplate(); cache.addResultTemplate(resultTemplate); for (String offering : request.getObservationTemplate().getOfferings()) { cache.addOffering(offering); cache.addPublishedOffering(offering); cache.addResultTemplateForOffering(offering, resultTemplate); cache.addFeatureOfInterestIdentifierHumanReadableName(featureOfInterest.getIdentifier(), featureOfInterest.getFirstName().getValue()); cache.addPublishedFeatureOfInterest(featureOfInterest.getIdentifier()); cache.addFeatureOfInterestIdentifierHumanReadableName(featureOfInterest.getIdentifier(), featureOfInterest.getFirstName().getValue()); cache.addPublishedFeatureOfInterest(featureOfInterest.getIdentifier()); cache.addFeatureOfInterest(featureOfInterest.getIdentifier()); if (observableProperty instanceof OmCompositePhenomenon) { OmCompositePhenomenon parent = (OmCompositePhenomenon) observableProperty; cache.addCompositePhenomenon(parent.getIdentifier()); cache.addCompositePhenomenonForProcedure(request.getObservationTemplate().getProcedureIdentifier(), parent.getIdentifier()); for (String offering : request.getObservationTemplate().getOfferings()) { cache.addCompositePhenomenonForOffering(offering, parent.getIdentifier()); cache.addObservablePropertyForCompositePhenomenon(parent.getIdentifier(), child.getIdentifier()); cache.addCompositePhenomenonForObservableProperty(child.getIdentifier(), parent.getIdentifier());
private void addHumanReadableIdentifier(String offeringId, OfferingEntity offering, MultilingualString name) { if (offering.isSetName()) { getCache().addOfferingIdentifierHumanReadableName(offeringId, offering.getName()); } else { if (!name.isEmpty()) { Optional<LocalizedString> defaultName = name.getLocalization(defaultLanguage); if (defaultName.isPresent()) { getCache().addOfferingIdentifierHumanReadableName(offeringId, defaultName.get().getText()); } else { getCache().addOfferingIdentifierHumanReadableName(offeringId, offeringId); } } } }
@Override public void execute() { List<AbstractSamplingFeature> samplingFeatures = new ArrayList<AbstractSamplingFeature>(); for (AbstractFeature abstractFeature : request.getFeatureMembers()) { if (abstractFeature instanceof AbstractSamplingFeature) { samplingFeatures.add((AbstractSamplingFeature)abstractFeature); } getCache().addFeatureOfInterest(abstractFeature.getIdentifier()); getCache().addPublishedFeatureOfInterest(abstractFeature.getIdentifier()); if (abstractFeature.isSetName()) { getCache().addFeatureOfInterestIdentifierHumanReadableName(abstractFeature.getIdentifier(), abstractFeature.getFirstName().getValue()); } } if (!samplingFeatures.isEmpty()) { final Envelope envelope = createEnvelopeFrom(samplingFeatures); getCache().updateGlobalEnvelope(envelope); } }
cache.addProcedure(procedure); cache.addPublishedProcedure(procedure); if (request.getProcedureDescription().isSetParentProcedure()) { cache.addParentProcedures(procedure, Sets.newHashSet(request.getProcedureDescription().getParentProcedure().getTitleOrFromHref())); cache.addPublishedProcedure(request.getProcedureDescription().getParentProcedure().getHref()); getCache().addProcedureDescriptionFormatsForProcedure(procedure, formats); cache.addHiddenChildProcedureForOffering(sosOffering.getIdentifier(), procedure); } else { cache.addOffering(sosOffering.getIdentifier()); cache.addPublishedOffering(sosOffering.getIdentifier()); cache.addProcedureForOffering(sosOffering.getIdentifier(), procedure); if (sosOffering.isSetName()) { cache.setNameForOffering(sosOffering.getIdentifier(), sosOffering.getOfferingName()); cache.addOfferingIdentifierHumanReadableName(sosOffering.getIdentifier(), sosOffering.getOfferingName()); cache.addOfferingForProcedure(procedure, sosOffering.getIdentifier()); cache.addAllowedObservationTypesForOffering(sosOffering.getIdentifier(), request.getMetadata() .getObservationTypes()); cache.addAllowedFeatureOfInterestTypesForOffering(sosOffering.getIdentifier(), request .getMetadata().getFeatureOfInterestTypes()); cache.addRelatedFeatureForOffering(sosOffering.getIdentifier(), identifier); cache.addRoleForRelatedFeature(identifier, relatedFeature.getRole());
getCache().addOffering(identifier); if (datasets != null && !datasets.isEmpty() && datasets.stream() .anyMatch(d -> d.isPublished() || d instanceof NotInitializedDataset && !d.isDeleted())) { getCache().addPublishedOffering(identifier); getCache().setProceduresForOffering(identifier, procedureIdentifiers.get(ProcedureFlag.PARENT)); Set<String> hiddenChilds = procedureIdentifiers.get(ProcedureFlag.HIDDEN_CHILD); if (!hiddenChilds.isEmpty()) { getCache().setHiddenChildProceduresForOffering(identifier, hiddenChilds); getCache().setObservablePropertiesForOffering(identifier, getObservablePropertyIdentifier(session)); getCache().setObservationTypesForOffering(identifier, getObservationTypes()); getCache().setAllowedObservationTypeForOffering(identifier, toStringSet(offering.getObservationTypes())); getCache().setRelatedFeaturesForOffering(identifier, getRelatedFeatures(offering.getRelatedFeatures())); getCache().setFeaturesOfInterestForOffering(identifier, DatasourceCacheUpdateHelper.getAllFeatureIdentifiersFromDatasets(datasets)); getCache().setFeatureOfInterestTypesForOffering(identifier, getFeatureTypes()); getCache().setAllowedFeatureOfInterestTypeForOffering(identifier, toStringSet(offering.getFeatureTypes())); getCache().setEnvelopeForOffering(identifier, getEnvelopeForOffering(offering)); getCache().setMinPhenomenonTimeForOffering(identifier, DateTimeHelper.makeDateTime(offering.getSamplingTimeStart())); getCache().setMaxPhenomenonTimeForOffering(identifier, DateTimeHelper.makeDateTime(offering.getSamplingTimeEnd())); getCache().setMinResultTimeForOffering(identifier, DateTimeHelper.makeDateTime(offering.getResultTimeStart())); getCache().setMaxResultTimeForOffering(identifier,DateTimeHelper.makeDateTime(offering.getResultTimeEnd()));
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()); } }
@Override public void execute() { LOGGER.debug("Executing FeatureOfInterestCacheUpdate"); startStopwatch(); try { Collection<FeatureEntity> features = new FeatureDao(getSession()).get(new DbQuery(IoParameters.createDefaults())); for (FeatureEntity featureEntity : features) { String identifier = featureEntity.getIdentifier(); getCache().addFeatureOfInterest(identifier); Collection<DatasetEntity> datasets = new DatasetDao<>(getSession()).get(createDatasetDbQuery(featureEntity)); if (datasets != null && !datasets.isEmpty()) { if (datasets.stream().anyMatch(d -> d.isPublished() || d instanceof NotInitializedDataset)) { getCache().addPublishedFeatureOfInterest(identifier); } getCache().setProceduresForFeatureOfInterest(identifier, getProcedures(datasets)); } if (featureEntity.isSetName()) { getCache().addFeatureOfInterestIdentifierHumanReadableName(identifier, featureEntity.getName()); } if (featureEntity.hasParents()) { getCache().addParentFeatures(identifier, getParents(featureEntity)); } } } catch (HibernateException he) { getErrors().add(new NoApplicableCodeException().causedBy(he).withMessage("Error while updating featureOfInterest cache!")); } LOGGER.debug("Finished executing FeatureOfInterestCacheUpdate ({})", getStopwatchResult()); }
getCache().addObservablePropertyIdentifierHumanReadableName(identifier, observableProperty.getName()); getCache().addCompositePhenomenonForObservableProperty(child.getIdentifier(), identifier); getCache().addObservablePropertyForCompositePhenomenon(identifier, child.getIdentifier()); getCache().addPublishedObservableProperty(identifier); getCache().setOfferingsForObservableProperty(identifier, DatasourceCacheUpdateHelper .getAllOfferingIdentifiersFromDatasets(datasets)); getCache().setProceduresForObservableProperty(identifier, DatasourceCacheUpdateHelper .getAllProcedureIdentifiersFromDatasets(datasets));
for (ProcedureEntity procedure : procedures) { String identifier = procedure.getIdentifier(); getCache().addProcedure(identifier); if (procedure.isSetName()) { getCache().addProcedureIdentifierHumanReadableName(identifier, procedure.getName()); getCache().setOfferingsForProcedure(identifier, DatasourceCacheUpdateHelper .getAllOfferingIdentifiersFromDatasets(procedureDatasetMap.get(identifier))); getCache().setObservablePropertiesForProcedure(identifier, DatasourceCacheUpdateHelper .getAllObservablePropertyIdentifiersFromDatasets(procedureDatasetMap.get(identifier))); if (procedure.hasParents()) { getParents(parents, procedure); getCache().addParentProcedures(identifier, parents);
cache.addProcedure(procedure); cache.addPublishedProcedure(procedure); if (request.getProcedureDescription().isSetParentProcedure()) { cache.addParentProcedures(procedure, Sets.newHashSet(request.getProcedureDescription().getParentProcedure().getTitleOrFromHref())); cache.addPublishedProcedure(request.getProcedureDescription().getParentProcedure().getHref()); getCache().addProcedureDescriptionFormatsForProcedure(procedure, formats); cache.addHiddenChildProcedureForOffering(sosOffering.getIdentifier(), procedure); } else { cache.addOffering(sosOffering.getIdentifier()); cache.addPublishedOffering(sosOffering.getIdentifier()); cache.addProcedureForOffering(sosOffering.getIdentifier(), procedure); if (sosOffering.isSetName()) { cache.setNameForOffering(sosOffering.getIdentifier(), sosOffering.getOfferingName()); cache.addOfferingIdentifierHumanReadableName(sosOffering.getIdentifier(), sosOffering.getOfferingName()); cache.addOfferingForProcedure(procedure, sosOffering.getIdentifier()); cache.addAllowedObservationTypesForOffering(sosOffering.getIdentifier(), request.getMetadata() .getObservationTypes()); cache.addAllowedFeatureOfInterestTypesForOffering(sosOffering.getIdentifier(), request .getMetadata().getFeatureOfInterestTypes()); cache.addRelatedFeatureForOffering(sosOffering.getIdentifier(), identifier); cache.addRoleForRelatedFeature(identifier, relatedFeature.getRole());
@Override public void execute() { List<AbstractSamplingFeature> samplingFeatures = new ArrayList<AbstractSamplingFeature>(); for (AbstractFeature abstractFeature : request.getFeatureMembers()) { if (abstractFeature instanceof AbstractSamplingFeature) { samplingFeatures.add((AbstractSamplingFeature)abstractFeature); } getCache().addFeatureOfInterest(abstractFeature.getIdentifier()); getCache().addPublishedFeatureOfInterest(abstractFeature.getIdentifier()); if (abstractFeature.isSetName()) { getCache().addFeatureOfInterestIdentifierHumanReadableName(abstractFeature.getIdentifier(), abstractFeature.getFirstName().getValue()); } } if (!samplingFeatures.isEmpty()) { final Envelope envelope = createEnvelopeFrom(samplingFeatures); getCache().updateGlobalEnvelope(envelope); } }
final SosWritableContentCache cache = getCache(); final String resultTemplate = response.getAcceptedTemplate(); cache.addResultTemplate(resultTemplate); for (String offering : request.getObservationTemplate().getOfferings()) { cache.addOffering(offering); cache.addPublishedOffering(offering); cache.addResultTemplateForOffering(offering, resultTemplate); cache.addFeatureOfInterestIdentifierHumanReadableName(featureOfInterest.getIdentifier(), featureOfInterest.getFirstName().getValue()); cache.addPublishedFeatureOfInterest(featureOfInterest.getIdentifier()); cache.addFeatureOfInterestIdentifierHumanReadableName(featureOfInterest.getIdentifier(), featureOfInterest.getFirstName().getValue()); cache.addPublishedFeatureOfInterest(featureOfInterest.getIdentifier()); cache.addFeatureOfInterest(featureOfInterest.getIdentifier()); if (observableProperty instanceof OmCompositePhenomenon) { OmCompositePhenomenon parent = (OmCompositePhenomenon) observableProperty; cache.addCompositePhenomenon(parent.getIdentifier()); cache.addCompositePhenomenonForProcedure(request.getObservationTemplate().getProcedureIdentifier(), parent.getIdentifier()); for (String offering : request.getObservationTemplate().getOfferings()) { cache.addCompositePhenomenonForOffering(offering, parent.getIdentifier()); cache.addObservablePropertyForCompositePhenomenon(parent.getIdentifier(), child.getIdentifier()); cache.addCompositePhenomenonForObservableProperty(child.getIdentifier(), parent.getIdentifier());