/* * Geotoolkit - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2014, Geomatys * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library 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 * Lesser General Public License for more details. */ package org.geotoolkit.observation; import java.util.List; import java.util.Set; import org.apache.sis.storage.DataStoreException; import org.geotoolkit.sos.netcdf.ExtractionResult; import org.geotoolkit.sos.netcdf.ExtractionResult.ProcedureTree; import org.geotoolkit.storage.DataStoreFactory; import org.opengis.metadata.Metadata; import org.opengis.parameter.ParameterValueGroup; import org.opengis.util.GenericName; import org.opengis.temporal.TemporalGeometricPrimitive; /** * * @author Guilhem Legal (Geomatys) */ public interface ObservationStore { /** * Get the parameters used to initialize this source from it's factory. * * @return source configuration parameters */ ParameterValueGroup getConfiguration(); /** * Get the factory which created this source. * * @return this source original factory */ DataStoreFactory getFactory(); Metadata getMetadata() throws DataStoreException; public abstract Set<GenericName> getProcedureNames(); public abstract List<ProcedureTree> getProcedures() throws DataStoreException; public abstract Set<String> getPhenomenonNames(); public abstract TemporalGeometricPrimitive getTemporalBounds() throws DataStoreException; public abstract ExtractionResult getResults() throws DataStoreException; public abstract ExtractionResult getResults(final List<String> sensorIds) throws DataStoreException; public abstract ExtractionResult getResults(final String affectedSensorID, final List<String> sensorIds) throws DataStoreException; /** * Return an Observation Reader on the data. * * @return An Observation Reader. */ public abstract ObservationReader getReader(); /** * Return an Observation Filter on the data. * * @return An Observation Filter. */ public abstract ObservationFilter getFilter(); /** * Return an Observation Writer on the data. * * @return An Observation Writer. */ public abstract ObservationWriter getWriter(); /** * Return an Observation Writer on the data. * * @param toClone * @return An Observation Writer. */ public abstract ObservationFilter cloneObservationFilter(ObservationFilter toClone); void close() throws DataStoreException; }