/** * Copyright (C) 2012-2017 52°North Initiative for Geospatial Open Source * Software GmbH * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 as published * by the Free Software Foundation. * * If the program is linked with libraries which are licensed under one of * the following licenses, the combination of the program with the linked * library is not considered a "derivative work" of the program: * * - Apache License, version 2.0 * - Apache Software License, version 1.0 * - GNU Lesser General Public License, version 3 * - Mozilla Public License, versions 1.0, 1.1 and 2.0 * - Common Development and Distribution License (CDDL), version 1.0 * * Therefore the distribution of the program linked with libraries licensed * under the aforementioned licenses, is permitted by the copyright holders * if the distribution is compliant with both the GNU General Public * License version 2 and the aforementioned licenses. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General * Public License for more details. */ package org.n52.sos.cache; import java.util.Collection; import java.util.Locale; import java.util.Set; import org.joda.time.DateTime; import org.n52.sos.i18n.MultilingualString; import org.n52.sos.ogc.gml.time.Time; import org.n52.sos.ogc.sos.SosEnvelope; import com.vividsolutions.jts.geom.Envelope; /** * Extension of {@code ContentCache} to allow the manipulation of the cache. * * @author Christian Autermann <c.autermann@52north.org> * * @since 4.0.0 */ public interface WritableContentCache extends ContentCache { /** * Set the last cache update time * * @param time * Last cache update time */ void setLastUpdateTime(DateTime time); /** * @return all features of interest associated with an offering */ Set<String> getFeaturesOfInterestWithOffering(); /** * Allow the specified observation type for the passed offering. * * @param offering * the offering * @param allowedObservationType * the observation type */ void addAllowedObservationTypeForOffering(String offering, String allowedObservationType); /** * Allow the specified observation types for the passed offering. * * @param offering * the offering * @param allowedObservationTypes * the observation types */ void addAllowedObservationTypesForOffering(String offering, Collection<String> allowedObservationTypes); /** * Allow the specified featureOfInterest type for the passed offering. * * @param offering * the offering * @param allowedFeatureOfInterestType * the featureOfInterest type */ void addAllowedFeatureOfInterestTypeForOffering(String offering, String allowedFeatureOfInterestType); /** * Allow the specified featureOfInterest types for the passed offering. * * @param offering * the offering * @param allowedFeatureOfInterestTypes * the featureOfInterest types */ void addAllowedFeatureOfInterestTypesForOffering(String offering, Collection<String> allowedFeatureOfInterestTypes); /** * Associate the specified composite phenomenon with the specified offering. * * @param offering * the offering * @param compositePhenomenon * the composite phenomenon */ void addCompositePhenomenonForOffering(String offering, String compositePhenomenon); /** * Add the specified epsg code. * * @param epsgCode * the new epsg code */ void addEpsgCode(Integer epsgCode); /** * Add the specified epsg codes. * * @param epsgCodes * the new epsg codes */ void addEpsgCodes(Collection<Integer> epsgCodes); /** * Add the specified feature of interest. * * @param featureOfInterest * the feature of interest */ void addFeatureOfInterest(String featureOfInterest); /** * Associate the specified feature of interest with the specified offering. * * @param offering * the offering * @param feature * the feature of interest */ void addFeatureOfInterestForOffering(String offering, String feature); /** * Associate the specified result template with the specified feature of * interest. * * @param resultTemplate * the result template * @param featureOfInterest * the feature of interest */ void addFeatureOfInterestForResultTemplate(String resultTemplate, String featureOfInterest); /** * Add the specified feature of interest. * * @param featureOfInterest * the feature of interest */ void addFeaturesOfInterest(Collection<String> featureOfInterest); /** * Associate the specified features of interest with the specified result * template. * * @param resultTemplate * the result template * @param featuresOfInterest * the features of interest */ void addFeaturesOfInterestForResultTemplate(String resultTemplate, Collection<String> featuresOfInterest); /** * Associate the specified observable property to the specified composite * phenomenon. * * @param compositePhenomenon * the composite phenomenon * @param observableProperty * the observable property */ void addObservablePropertyForCompositePhenomenon(String compositePhenomenon, String observableProperty); /** * Associate the specified observable property with the specified offering. * * @param offering * the offering * @param observableProperty * the observable property */ void addObservablePropertyForOffering(String offering, String observableProperty); /** * Associate the specified observable property with the specified procedure. * * @param procedure * the procedure * @param observableProperty * the observable property */ void addObservablePropertyForProcedure(String procedure, String observableProperty); /** * Associate the specified observable property with the specified result * template. * * @param resultTemplate * the result template * @param observableProperty * the observable property */ void addObservablePropertyForResultTemplate(String resultTemplate, String observableProperty); /** * Associate the specified observation type with the specified offering. * * @param offering * the offering * @param observationType * the observation type */ void addObservationTypesForOffering(String offering, String observationType); /** * Associate the specified featureOfInterest type with the specified * offering. * * @param offering * the offering * @param featureOfInterestType * the featureOfInterest type */ void addFeatureOfInterestTypesForOffering(String offering, String featureOfInterestType); /** * Associate the specified observable property to the specified offering. * * @param observableProperty * the observable property * @param offering * the offering */ void addOfferingForObservableProperty(String observableProperty, String offering); /** * Associate the specified offering with the specified procedure. * * @param procedure * the procedure * @param offering * the offering */ void addOfferingForProcedure(String procedure, String offering); /** * Associate the specified parent feature with the specified feature of * interest. * * @param featureOfInterest * the feature of interest * @param parentFeature * the parent feature */ void addParentFeature(String featureOfInterest, String parentFeature); /** * Associate the specified parent features with the specified feature of * interest. * * @param featureOfInterest * the feature of interest * @param parentFeatures * the parent features */ void addParentFeatures(String featureOfInterest, Collection<String> parentFeatures); /** * Associate the specified parent procedure with the specified procedure * * @param procedure * the procedure * @param parentProcedure * the parent procedure */ void addParentProcedure(String procedure, String parentProcedure); /** * Associate the specified parent procedures with the specified procedure * * @param procedure * the procedure * @param parentProcedures * the parent procedures */ void addParentProcedures(String procedure, Collection<String> parentProcedures); /** * Add the specified procedure. * * @param procedure * the procedure */ void addProcedure(String procedure); /** * Associate the specified procedure with the specified feature of interest. * * @param featureOfInterest * the feature of interest * @param procedure * the procedure */ void addProcedureForFeatureOfInterest(String featureOfInterest, String procedure); /** * Associate the specified procedure with the specified observable property. * * @param observableProperty * the observable property * @param procedure * the procedure */ void addProcedureForObservableProperty(String observableProperty, String procedure); /** * Associate the specified procedure with the specified offering. * * @param offering * the offering * @param procedure * the procedure */ void addProcedureForOffering(String offering, String procedure); /** * Associate the specified hidden child procedure with the specified * offering. * * @param offering * the offering * @param procedure * the procedure */ void addHiddenChildProcedureForOffering(String offering, String procedure); /** * Add the specified procedures. * * @param procedure * the procedures */ void addProcedures(Collection<String> procedure); /** * Associate the specified related feature with the specified offering. * * @param offering * the offering * @param relatedFeature * the related feature */ void addRelatedFeatureForOffering(String offering, String relatedFeature); /** * Associate the specified related features with the specified offering. * * @param offering * the offering * @param relatedFeatures * the related features */ void addRelatedFeaturesForOffering(String offering, Collection<String> relatedFeatures); /** * Add the specified result template. * * @param resultTemplate * the result template */ void addResultTemplate(String resultTemplate); /** * Associate the specified result template with the specified offering. * * @param offering * the offering * @param resultTemplate * the result template */ void addResultTemplateForOffering(String offering, String resultTemplate); /** * Add the specified result templates. * * @param resultTemplates * the result templates */ void addResultTemplates(Collection<String> resultTemplates); /** * Associate the specified role with the specified related feature. * * @param relatedFeature * the related feature * @param role * the role */ void addRoleForRelatedFeature(String relatedFeature, String role); void addFeatureOfInterestIdentifierHumanReadableName(String identifier, String humanReadableName); void addObservablePropertyIdentifierHumanReadableName(String identifier, String humanReadableName); void addProcedureIdentifierHumanReadableName(String identifier, String humanReadableName); void addOfferingIdentifierHumanReadableName(String identifier, String humanReadableName); /** * Dissociate the specified allowed observation type with the specified * offering. * * @param offering * the offering * @param allowedObservationType * the allowed observation type */ void removeAllowedObservationTypeForOffering(String offering, String allowedObservationType); /** * Dissociate all allowed observation type with the specified offering. * * @param offering * the offering */ void removeAllowedObservationTypesForOffering(String offering); /** * Dissociate the specified composite phenomenon with the specified * offering. * * @param offering * the offering * @param compositePhenomenon * the composite phenomenon */ void removeCompositePhenomenonForOffering(String offering, String compositePhenomenon); /** * Dissociate all composite phenomenon with the specified offering. * * @param offering * the offering */ void removeCompositePhenomenonsForOffering(String offering); /** * Remove the envelope for the specified offering. * * @param offering * the offering */ void removeEnvelopeForOffering(String offering); /** * Remove the Spatial Filtering Profile envelope for the specified offering. * * @param offering * the offering */ void removeSpatialFilteringProfileEnvelopeForOffering(String offering); /** * Remove the specified epsg code. * * @param epsgCode * the epsg code */ void removeEpsgCode(Integer epsgCode); /** * Remove the specified epsg codes. * * @param epsgCode * the epsg codes */ void removeEpsgCodes(Collection<Integer> epsgCode); /** * Remove the specified feature of interest. * * @param featureOfInterest * the feature of interest */ void removeFeatureOfInterest(String featureOfInterest); /** * Dissociate the specified feature with the specified offering. * * @param offering * the offering * @param featureOfInterest * the feature of interest */ void removeFeatureOfInterestForOffering(String offering, String featureOfInterest); /** * Dissociate the specified feature of interest with the specified result * template. * * @param resultTemplate * the result template * @param featureOfInterest * the feature of interest */ void removeFeatureOfInterestForResultTemplate(String resultTemplate, String featureOfInterest); /** * Remove the specified features of interest. * * @param featuresOfInterest * the features of interest */ void removeFeaturesOfInterest(Collection<String> featuresOfInterest); /** * Dissociate all features of interest with the specified offering. * * @param offering * the offering */ void removeFeaturesOfInterestForOffering(String offering); /** * Dissociate all features of interest with the specified result template. * * @param resultTemplate * the result template */ void removeFeaturesOfInterestForResultTemplate(String resultTemplate); /** * Remove the maximal phenomenon time for the specified offering. * * @param offering * the offering */ void removeMaxPhenomenonTimeForOffering(String offering); /** * Remove the minimal phenomenon time for the specified offering. * * @param offering * the offering */ void removeMinPhenomenonTimeForOffering(String offering); /** * Remove the maximal phenomenon time for the specified procedure. * * @param procedure * the procedure */ void removeMaxPhenomenonTimeForProcedure(String procedure); /** * Remove the minimal phenomenon time for the specified procedure. * * @param procedure * the procedure */ void removeMinPhenomenonTimeForProcedure(String procedure); /** * Remove the maximal result time for the specified offering. * * @param offering * the offering */ void removeMaxResultTimeForOffering(String offering); /** * Remove the minimal result time for the specified offering. * * @param offering * the offering */ void removeMinResultTimeForOffering(String offering); /** * Remove the name for the specified offering. * * @param offering * the offering */ void removeNameForOffering(String offering); /** * Dissociate all observable properties with the specified composite * phenomenon. * * @param compositePhenomenon * the composite phenomenon */ void removeObservablePropertiesForCompositePhenomenon(String compositePhenomenon); /** * Dissociate all observable properties with the specified offering. * * @param offering * the offering */ void removeObservablePropertiesForOffering(String offering); /** * Dissociate all observable properties with the specified procedure. * * @param procedure * the procedure */ void removeObservablePropertiesForProcedure(String procedure); /** * Dissociate all observable properties with the specified result template. * * @param resultTemplate * the result template */ void removeObservablePropertiesForResultTemplate(String resultTemplate); /** * Dissociate the specified observable property with the specified composite * phenomenon. * * @param compositePhenomenon * the composite phenomenon * @param observableProperty * the observable property */ void removeObservablePropertyForCompositePhenomenon(String compositePhenomenon, String observableProperty); /** * Dissociate the specified observable property with the specified offering. * * @param offering * the offering * @param observableProperty * the observable property */ void removeObservablePropertyForOffering(String offering, String observableProperty); /** * Dissociate the specified observable property with the specified * procedure. * * @param procedure * the procedure * @param observableProperty * the observable property */ void removeObservablePropertyForProcedure(String procedure, String observableProperty); /** * Dissociate the specified observable property with the specified result * template. * * @param resultTemplate * the result template * @param observableProperty * the observable property */ void removeObservablePropertyForResultTemplate(String resultTemplate, String observableProperty); /** * Dissociate the specified featureOfInterest type with the specified * offering. * * @param offering * the offering * @param featureOfInterestType * the featureOfInterest type */ void removeFeatureOfInterestTypeForOffering(String offering, String featureOfInterestType); /** * Dissociate all featureOfInterest types with the specified offering. * * @param offering * the offering */ void removeFeatureOfInterestTypesForOffering(String offering); /** * Dissociate the specified observation type with the specified offering. * * @param offering * the offering * @param observationType * the observation type */ void removeObservationTypeForOffering(String offering, String observationType); /** * Dissociate all observation types with the specified offering. * * @param offering * the offering */ void removeObservationTypesForOffering(String offering); /** * Dissociate the specified offering with the specified observable property. * * @param observableProperty * the observable property * @param offering * the offering */ void removeOfferingForObservableProperty(String observableProperty, String offering); /** * Dissociate the specified offering with the specified procedure. * * @param procedure * the procedure * @param offering * the offering */ void removeOfferingForProcedure(String procedure, String offering); /** * Dissociate all offerings with the specified observable property. * * @param observableProperty * the observable property */ void removeOfferingsForObservableProperty(String observableProperty); /** * Dissociate all offerings with the specified procedure. * * @param procedure * the procedure */ void removeOfferingsForProcedure(String procedure); /** * Remove the specified procedure. * * @param procedure * the procedure */ void removeProcedure(String procedure); /** * Dissociate the specified procedure with the specified feature of * interest. * * @param featureOfInterest * the feature of interest * @param procedure * the procedure */ void removeProcedureForFeatureOfInterest(String featureOfInterest, String procedure); /** * Dissociate the specified procedure with the specified observable * property. * * @param observableProperty * the observable property * @param procedure * the procedure */ void removeProcedureForObservableProperty(String observableProperty, String procedure); /** * Dissociate the specified procedure with the specified offering. * * @param offering * the offering * @param procedure * the procedure */ void removeProcedureForOffering(String offering, String procedure); /** * Dissociate the specified procedure with the specified offering. * * @param offering * the offering * @param procedure * the procedure */ void removeHiddenChildProcedureForOffering(String offering, String procedure); /** * Remove the specified procedure. * * @param procedure * the procedure */ void removeProcedures(Collection<String> procedure); /** * Dissociate all procedures with the specified feature of interest. * * @param featureOfInterest * the feature of interest */ void removeProceduresForFeatureOfInterest(String featureOfInterest); /** * Dissociate all procedures with the specified observable property. * * @param observableProperty * the observable property */ void removeProceduresForObservableProperty(String observableProperty); /** * Dissociate all procedures with the specified offering. * * @param offering * the offering */ void removeProceduresForOffering(String offering); /** * Dissociate the specified related feature with the specified offering. * * @param offering * the offering * @param relatedFeature * the related feature */ void removeRelatedFeatureForOffering(String offering, String relatedFeature); /** * Dissociate all related features with the specified offering. * * @param offering * the offering */ void removeRelatedFeaturesForOffering(String offering); /** * Remove the specified result template. * * @param resultTemplate * the result template */ void removeResultTemplate(String resultTemplate); /** * Dissociate the specified result template with the specified result * template. * * @param offering * the offering * @param resultTemplate * the result template */ void removeResultTemplateForOffering(String offering, String resultTemplate); /** * Remove the specified result templates. * * @param resultTemplates * the result templates */ void removeResultTemplates(Collection<String> resultTemplates); /** * Dissociate all result templates with the specified result template. * * @param offering * the offering */ void removeResultTemplatesForOffering(String offering); /** * Dissociate the specified role with the specified related feature. * * @param relatedFeature * the related feature * @param role * the role */ void removeRoleForRelatedFeature(String relatedFeature, String role); /** * Dissociate all roles with the specified related feature. * * @param relatedFeature * the related feature */ void removeRolesForRelatedFeature(String relatedFeature); /** * Dissociate all roles with the specified related feature that are not * contained in the specified collection. * * @param features * the related features for which the roles should kept */ void removeRolesForRelatedFeatureNotIn(Collection<String> features); void removeFeatureOfInterestIdentifierForHumanReadableName(String humanReadableName); void removeFeatureOfInterestHumanReadableNameForIdentifier(String identifier); void removeObservablePropertyIdentifierForHumanReadableName(String humanReadableName); void removeObservablePropertyHumanReadableNameForIdentifier(String identifier); void removeProcedureIdentifierForHumanReadableName(String humanReadableName); void removeProcedureHumanReadableNameForIdentifier(String identifier); void removeOfferingIdentifierForHumanReadableName(String humanReadableName); void removeOfferingHumanReadableNameForIdentifier(String identifier); /** * Sets the allowed observation types for the specified offering. * * @param offering * the offering * @param allowedObservationTypes * the allowed observation types */ void setAllowedObservationTypeForOffering(String offering, Collection<String> allowedObservationTypes); /** * Sets the allowed featureOfInterest types for the specified offering. * * @param offering * the offering * @param allowedFeatureOfInterestTypes * the allowed featureOfInterest types */ void setAllowedFeatureOfInterestTypeForOffering(String offering, Collection<String> allowedFeatureOfInterestTypes); /** * Sets the composite phenomenon for the specified offering. * * @param offering * the offering * @param compositePhenomenons * the composite phenomenons */ void setCompositePhenomenonsForOffering(String offering, Collection<String> compositePhenomenons); /** * Sets the default EPSG code. * * @param defaultEPSGCode * the new default ESPG code */ void setDefaultEPSGCode(int defaultEPSGCode); /** * Sets the specified envelope for the specified offering. * * @param offering * the offering * @param envelope * the envelope */ void setEnvelopeForOffering(String offering, SosEnvelope envelope); /** * Sets the specified envelope for the specified offering. * * @param offering * the offering * @param envelope * the envelope */ void setSpatialFilteringProfileEnvelopeForOffering(String offering, SosEnvelope envelope); /** * Updates the Spatial Filtering Profile envelope for the specified offering * to include the specified envelope. * * @param offering * the offering * @param envelope * the envelope to include */ void updateEnvelopeForOffering(String offering, Envelope envelope); /** * Updates the Spatial Filtering Profile envelope for the specified offering * to include the specified envelope. * * @param offering * the offering * @param envelope * the envelope to include */ void updateSpatialFilteringProfileEnvelopeForOffering(String offering, Envelope envelope); /** * Sets the new global phenomenon envelope. * * @param min * the minimal phenomenon time * @param max * the maximal phenomenon time */ void setPhenomenonTime(DateTime min, DateTime max); /** * Update the global phenomenon time by extending the global envelope to * include the specified {@code ITime}. * * @param eventTime * the time to include */ void updatePhenomenonTime(Time eventTime); /** * Recalculates the global phenomenon time envelope based on the current * offering phenomenon time envelopes. */ void recalculatePhenomenonTime(); /** * Sets the new global result envelope. * * @param min * the minimal result time * @param max * the maximal result time */ void setResultTime(DateTime min, DateTime max); /** * Update the global result time by extending the global envelope to include * the specified {@code ITime}. * * @param eventTime * the time to include */ void updateResultTime(Time eventTime); /** * Recalculates the global result time envelope based on the current * offering result time envelopes. */ void recalculateResultTime(); /** * Sets the features of interest. * * @param featuresOfInterest * the features of interest */ void setFeaturesOfInterest(Collection<String> featuresOfInterest); /** * Sets the features of interest for the specified offering. * * @param offering * the offering * @param featuresOfInterest * the features of interest. */ void setFeaturesOfInterestForOffering(String offering, Collection<String> featuresOfInterest); /** * Sets the global spatial envelope. * * @param globalEnvelope * the new spatial envelope */ void setGlobalEnvelope(SosEnvelope globalEnvelope); /** * Updates the global spatial envelope to include the specified envelope. * * @param e * the envelope */ void updateGlobalEnvelope(Envelope e); /** * Recalculates the global spatial envelope based on the current offering * spatial envelopes. */ void recalculateGlobalEnvelope(); /** * Sets the global maximal phenomenon time. * * @param maxEventTime * the max phenomenon time */ void setMaxPhenomenonTime(DateTime maxEventTime); /** * Sets the maximal phenomenon time for the specified offering to the * specified time. * * @param offering * the offering * @param maxTime * the max phenomenon time */ void setMaxPhenomenonTimeForOffering(String offering, DateTime maxTime); /** * Sets the maximal phenomenon time for the specified procedure to the * specified time. * * @param procedure * the procedure * @param maxTime * the max phenomenon time */ void setMaxPhenomenonTimeForProcedure(String procedure, DateTime maxTime); /** * Sets the global minimal phenomenon time. * * @param minEventTime * the min phenomenon time */ void setMinPhenomenonTime(DateTime minEventTime); /** * Sets the minimal phenomenon time for the specified offering to the * specified time. * * @param offering * the offering * @param minTime * the min phenomenon time */ void setMinPhenomenonTimeForOffering(String offering, DateTime minTime); /** * Sets the minimal phenomenon time for the specified procedure to the * specified time. * * @param procedure * the procedure * @param minTime * the min phenomenon time */ void setMinPhenomenonTimeForProcedure(String procedure, DateTime minTime); /** * Updates the phenomenon time envelope of the specified offering to include * the specified event time. * * @param offering * the offering * @param eventTime * the time to include */ void updatePhenomenonTimeForOffering(String offering, Time eventTime); /** * Updates the phenomenon time envelope of the specified procedure to * include the specified event time. * * @param procedure * the procedure * @param eventTime * the time to include */ void updatePhenomenonTimeForProcedure(String procedure, Time eventTime); /** * Sets the global maximal result time. * * @param maxResultTime * the max result time */ void setMaxResultTime(DateTime maxResultTime); /** * Sets the maximal result time for the specified offering to the specified * time. * * @param offering * the offering * @param maxTime * the max result time */ void setMaxResultTimeForOffering(String offering, DateTime maxTime); /** * Sets the global minimal result time. * * @param minResultTime * the min result time */ void setMinResultTime(DateTime minResultTime); /** * Sets the minimal result time for the specified offering to the specified * time. * * @param offering * the offering * @param minTime * the min result time */ void setMinResultTimeForOffering(String offering, DateTime minTime); /** * Updates the result time envelope of the specified offering to include the * specified result time. * * @param offering * the offering * @param resultTime * the time to include */ void updateResultTimeForOffering(String offering, Time resultTime); /** * Sets the name of the specified offering. * * @param offering * the offering * @param name * the name */ void setNameForOffering(String offering, String name); /** * Sets the name of the specified language and the specified offering. * * @param offering * the offering * @param name * the name */ void setI18nNameForOffering(String offering, MultilingualString name); /** * Sets the description of the specified language and the specified * offering. * * @param offering * the offering * @param description * the description */ void setI18nDescriptionForOffering(String offering, MultilingualString description); /** * Sets the observable properties for the specified composite phenomenon. * * @param compositePhenomenon * the composite phenomenon * @param observableProperties * the observable properties */ void setObservablePropertiesForCompositePhenomenon(String compositePhenomenon, Collection<String> observableProperties); /** * Sets the observable properties for the specified offering. * * @param offering * the offering * @param observableProperties * the observable properties */ void setObservablePropertiesForOffering(String offering, Collection<String> observableProperties); /** * Sets the observable properties for the specified procedure. * * @param procedure * the procedure * @param observableProperties * the observable properties */ void setObservablePropertiesForProcedure(String procedure, Collection<String> observableProperties); /** * Sets the observable properties for the specified result template. * * @param resultTemplate * the result template * @param observableProperties * the observable properties */ void setObservablePropertiesForResultTemplate(String resultTemplate, Collection<String> observableProperties); /** * Sets the observation types for the specified offering. * * @param offering * the offering * @param observationTypes * the observation types */ void setObservationTypesForOffering(String offering, Collection<String> observationTypes); /** * Sets the featureOfInterest types for the specified offering. * * @param offering * the offering * @param featureOfInterestTypes * the featureOfInterest types */ void setFeatureOfInterestTypesForOffering(String offering, Collection<String> featureOfInterestTypes); /** * Sets the specified offerings for the specified observable property. * * @param observableProperty * the observable property * @param offerings * the offerings */ void setOfferingsForObservableProperty(String observableProperty, Collection<String> offerings); /** * Sets the offerings for the specified procedure. * * @param procedure * the procedure * @param offerings * the offerings */ void setOfferingsForProcedure(String procedure, Collection<String> offerings); /** * Sets the procedures. * * @param procedures * the procedures */ void setProcedures(Collection<String> procedures); /** * Sets the procedures for the specified feature of interest. * * @param featureOfInterest * the feature of interest * @param procedures * the procedure */ void setProceduresForFeatureOfInterest(String featureOfInterest, Collection<String> procedures); /** * Sets the procedures for the specified observable property. * * @param observableProperty * the observable property * @param procedures * the procedures */ void setProceduresForObservableProperty(String observableProperty, Collection<String> procedures); /** * Sets the procedures for the specified offering. * * @param offering * the offering * @param procedures * the procedures */ void setProceduresForOffering(String offering, Collection<String> procedures); /** * Sets the hidden child procedures for the specified offering. To create a * sensor system for SOS 2.0. * * @param offering * the offering * @param procedures * the procedures */ void setHiddenChildProceduresForOffering(String offering, Collection<String> procedures); /** * Sets the related features for the specified offering. * * @param offering * the offering * @param relatedFeatures * the related features */ void setRelatedFeaturesForOffering(String offering, Collection<String> relatedFeatures); /** * Sets the result template for the specified offering. * * @param offering * the offering * @param resultTemplates * the result templates */ void setResultTemplatesForOffering(String offering, Collection<String> resultTemplates); /** * Sets the roles for the specified related feature. * * @param relatedFeature * the related feature * @param roles * the roles */ void setRolesForRelatedFeature(String relatedFeature, Collection<String> roles); /** * Reset the features of interest. */ void clearFeaturesOfInterest(); /** * Reset the procedures to feature of interest relation. */ void clearProceduresForFeatureOfInterest(); /** * Reset the feature hierarchy. */ void clearFeatureHierarchy(); /** * Reset the offerings. */ void clearOfferings(); /** * Reset the offering to procedures relation. */ void clearProceduresForOfferings(); /** * Reset the offering to hidden child procedures relation. */ void clearHiddenChildProceduresForOfferings(); /** * Reset the offering to offering name relation. */ void clearNameForOfferings(); /** * Reset the offering to language and offering name relation. */ void clearI18nNamesForOfferings(); /** * Reset the offering to language offering description relation. */ void clearI18nDescriptionsNameForOfferings(); /** * Reset the offering to observable property relation. */ void clearObservablePropertiesForOfferings(); /** * Reset the offering to related features relation. */ void clearRelatedFeaturesForOfferings(); /** * Reset the offerings to observation types relation. */ void clearObservationTypesForOfferings(); /** * Reset the offerings to allowed observation types relation. */ void clearAllowedObservationTypeForOfferings(); /** * Reset the offerings to envelope relation. */ void clearEnvelopeForOfferings(); /** * Reset the offerings to Spatial Filtering Profile envelope relation. */ void clearSpatialFilteringProfileEnvelopeForOfferings(); /** * Reset the offering to feature of interest relation. */ void clearFeaturesOfInterestForOfferings(); /** * Reset the offering to minimal phenomenon time relation. */ void clearMinPhenomenonTimeForOfferings(); /** * Reset the offering to maximal phenomenon time relation. */ void clearMaxPhenomenonTimeForOfferings(); /** * Reset the procedure to minimal phenomenon time relation. */ void clearMinPhenomenonTimeForProcedures(); /** * Reset the procedure to maximal phenomenon time relation. */ void clearMaxPhenomenonTimeForProcedures(); /** * Reset the offering to minimal result time relation. */ void clearMinResultTimeForOfferings(); /** * Reset the offering to maximal result time relation. */ void clearMaxResultTimeForOfferings(); /** * Add the specified offering. * * @param offering * the offering */ void addOffering(String offering); /** * Sets the offerings. * * @param offerings * the offerings */ void setOfferings(Collection<String> offerings); /** * Add the specified offerings. * * @param offerings * the offerings */ void addOfferings(Collection<String> offerings); /** * Remove the specified offering. * * @param offering * the offering */ void removeOffering(String offering); /** * Remove the specified offerings. * * @param offerings * the offerings */ void removeOfferings(Collection<String> offerings); /** * Add the specified language. * * @param language * the new language */ void addSupportedLanguage(Locale language); /** * Add the specified languages. * * @param languages * the new languages */ void addSupportedLanguage(Collection<Locale> languages); /** * Clear the specified languages. * */ void clearSupportedLanguage(); /** * Remove the specified language. * * @param language * the new language to remove */ void removeSupportedLanguage(Locale language); /** * Set the specified requestable procedureDescriptionFormat. * * @param formats * the new formats */ void setRequestableProcedureDescriptionFormat(Collection<String> formats); void clearFeatureOfInterestIdentifierHumanReadableNameMaps(); void clearObservablePropertyIdentifierHumanReadableNameMaps(); void clearProcedureIdentifierHumanReadableNameMaps(); void clearOfferingIdentifierHumanReadableNameMaps(); void addPublishedFeatureOfInterest(String featureOfInterest); void addPublishedFeaturesOfInterest(Collection<String> featuresOfInterest); void setPublishedFeaturesOfInterest(Collection<String> featuresOfInterest); void clearPublishedFeaturesOfInterest(); void removePublishedFeatureOfInterest(String featureOfInterest); void removePublishedFeaturesOfInterest(Collection<String> featuresOfInterest); void addPublishedProcedure(String procedure); void addPublishedProcedures(Collection<String> procedure); void setPublishedProcedures(Collection<String> procedures); void clearPublishedProcedure(); void removePublishedProcedure(String procedure); void removePublishedProcedures(Collection<String> procedures); void addPublishedOffering(String offering); void addPublishedOfferings(Collection<String> offerings); void setPublishedOfferings(Collection<String> offerings); void clearPublishedOffering(); void removePublishedOffering(String offering); void removePublishedOfferings(Collection<String> offerings); void addPublishedObservableProperty(String observableProperty); void addPublishedObservableProperties(Collection<String> observableProperties); void setPublishedObservableProperties(Collection<String> observableProperties); void clearPublishedObservableProperty(); void removePublishedObservableProperty(String observableProperty); void removePublishedObservableProperties(Collection<String> observableProperties); }