@Override public void addAllowedObservationTypesForOffering(String offering, Collection<String> allowedObservationTypes) { CacheValidation.notNullOrEmpty(OFFERING, offering); CacheValidation.noNullValues(ALLOWED_OBSERVATION_TYPES, allowedObservationTypes); LOG.trace("Adding AllowedObservationTypes {} to Offering {}", allowedObservationTypes, offering); this.allowedObservationTypeForOfferings.computeIfAbsent(offering, createSynchronizedSet()) .addAll(allowedObservationTypes); }
@Override public void addEpsgCode(Integer epsgCode) { CacheValidation.greaterZero(EPSG_CODE, epsgCode); LOG.trace("Adding EpsgCode {}", epsgCode); this.epsgCodes.add(epsgCode); }
@Override public void addOfferingForFeaturesOfInterest(final String offering, final Collection<String> featuresOfInterest) { CacheValidation.notNullOrEmpty(OFFERING, offering); CacheValidation.noNullOrEmptyValues(FEATURES_OF_INTEREST, featuresOfInterest); LOG.trace("Adding offering {} to featureOfInterest {}", offering, featuresOfInterest); for (final String featureOfInterest : featuresOfInterest) { this.offeringsForFeaturesOfInterest.computeIfAbsent(featureOfInterest, createSynchronizedSet()) .add(offering); } }
@Override public void setNameForOffering(String offering, String name) { CacheValidation.notNullOrEmpty(OFFERING, offering); CacheValidation.notNullOrEmpty(NAME, name); LOG.trace("Setting Name of Offering {} to {}", offering, name); this.nameForOfferings.put(offering, name); }
@Override public void addResultTemplates(Collection<String> resultTemplates) { CacheValidation.noNullValues(RESULT_TEMPLATES, resultTemplates); resultTemplates.forEach(this::addResultTemplate); }
@Override public void addCompositePhenomenon(Collection<String> compositePhenomenon) { CacheValidation.noNullOrEmptyValues(COMPOSITE_PHENOMENON, compositePhenomenon); LOG.trace("Adding composite phenomenon {}", compositePhenomenon); this.compositePhenomenons.addAll(compositePhenomenon); }
@Override public void setNameForOffering(String offering, String name) { CacheValidation.notNullOrEmpty(OFFERING, offering); CacheValidation.notNullOrEmpty(NAME, name); LOG.trace("Setting Name of Offering {} to {}", offering, name); this.nameForOfferings.put(offering, name); }
/** * Add the specified procedures. * * @param procedures the procedures */ default void addProcedures(Collection<String> procedures) { CacheValidation.noNullValues(PROCEDURES, procedures); procedures.forEach(this::addProcedure); }
@Override public void removeAllowedObservationTypeForOffering(String offering, String allowedObservationType) { CacheValidation.notNullOrEmpty(OFFERING, offering); CacheValidation.notNullOrEmpty("allowedObservationType", allowedObservationType); LOG.trace("Removing allowedObservationType {} from offering {}", allowedObservationType, offering); this.allowedObservationTypeForOfferings.getOrDefault(offering, Collections.emptySet()) .remove(allowedObservationType); }
@Override public void addTypeOfProcedure(String type, Set<String> instances) { CacheValidation.notNullOrEmpty(TYPE_PROCEDURE, type); CacheValidation.noNullValues(PROCEDURE_INSTANCES, instances); LOG.trace("Adding instances {} to type '{}'", instances, type); if (hasInstancesForProcedure(type)) { typeOfProceduresMap.get(type).addAll(instances); } else { typeOfProceduresMap.put(type, instances); } }
@Override public void addOfferingForFeaturesOfInterest(final String offering, final Collection<String> featuresOfInterest) { CacheValidation.notNullOrEmpty(OFFERING, offering); CacheValidation.noNullOrEmptyValues(FEATURES_OF_INTEREST, featuresOfInterest); LOG.trace("Adding offering {} to featureOfInterest {}", offering, featuresOfInterest); for (final String featureOfInterest : featuresOfInterest) { this.offeringsForFeaturesOfInterest.computeIfAbsent(featureOfInterest, createSynchronizedSet()) .add(offering); } }
/** * Add the specified offerings. * * @param offerings the offerings */ default void addOfferings(Collection<String> offerings) { CacheValidation.noNullValues(OFFERINGS, offerings); offerings.forEach(this::addOffering); }
@Override public void addEpsgCode(Integer epsgCode) { CacheValidation.greaterZero(EPSG_CODE, epsgCode); LOG.trace("Adding EpsgCode {}", epsgCode); this.epsgCodes.add(epsgCode); }
@Override public void removeObservablePropertyForResultTemplate(String resultTemplate, String observableProperty) { CacheValidation.notNullOrEmpty(RESULT_TEMPLATE, resultTemplate); CacheValidation.notNullOrEmpty(OBSERVABLE_PROPERTY, observableProperty); LOG.trace("Removing observableProperty {} from resultTemplate {}", observableProperty, resultTemplate); this.observedPropertiesForResultTemplates.getOrDefault(resultTemplate, Collections.emptySet()) .remove(observableProperty); }
@Override public void addRelatedFeaturesForOffering(String offering, Collection<String> relatedFeature) { CacheValidation.notNullOrEmpty(OFFERING, offering); CacheValidation.noNullValues(RELATED_FEATURE, relatedFeature); LOG.trace("Adding relatedFeatures {} to offering {}", relatedFeature, offering); this.relatedFeaturesForOfferings.computeIfAbsent(offering, createSynchronizedSet()).addAll(relatedFeature); }
@Override public void addCompositePhenomenonForProcedure(String procedure, Collection<String> compositePhenomenon) { CacheValidation.notNullOrEmpty(PROCEDURE, procedure); CacheValidation.noNullOrEmptyValues(COMPOSITE_PHENOMENON, compositePhenomenon); LOG.trace("Adding composite phenomenon {} to procedure {}", compositePhenomenon, procedure); this.compositePhenomenonsForProcedure.computeIfAbsent(procedure, createSynchronizedSet()) .addAll(compositePhenomenon); addCompositePhenomenon(compositePhenomenon); }
@Override public void removeFeaturesOfInterest(Collection<String> featuresOfInterest) { CacheValidation.noNullValues(FEATURES_OF_INTEREST, featuresOfInterest); featuresOfInterest.forEach(this::removeFeatureOfInterest); }
@Override public void removeProcedureForObservableProperty(String observableProperty, String procedure) { CacheValidation.notNullOrEmpty(OBSERVABLE_PROPERTY, observableProperty); CacheValidation.notNullOrEmpty(PROCEDURE, procedure); LOG.trace("Removing procedure {} from observableProperty {}", procedure, observableProperty); this.proceduresForObservableProperties.getOrDefault(observableProperty, Collections.emptySet()) .remove(procedure); }
@Override public void addFeaturesOfInterestForResultTemplate(String resultTemplate, Collection<String> featuresOfInterest) { CacheValidation.notNullOrEmpty(RESULT_TEMPLATE, resultTemplate); CacheValidation.noNullValues(FEATURES_OF_INTEREST, featuresOfInterest); LOG.trace("Adding FeatureOfInterest {} to SosResultTemplate {}", featuresOfInterest, resultTemplate); this.featuresOfInterestForResultTemplates.computeIfAbsent(resultTemplate, createSynchronizedSet()) .addAll(featuresOfInterest); }
@Override public void addParentProcedures(String procedure, Collection<String> parentProcedures) { CacheValidation.notNullOrEmpty(PROCEDURE, procedure); CacheValidation.noNullOrEmptyValues(PARENT_PROCEDURES, parentProcedures); LOG.trace("Adding parentProcedures {} to procedure {}", parentProcedures, procedure); this.parentProceduresForProcedures.computeIfAbsent(procedure, createSynchronizedSet()).addAll(parentProcedures); parentProcedures.forEach((parentProcedure) -> this.childProceduresForProcedures.computeIfAbsent(parentProcedure, createSynchronizedSet()) .add(procedure)); }