/* * Constellation - An open source and standard compliant SDI * http://www.constellation-sdi.org * * Copyright 2014 Geomatys. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.constellation.sos.factory; import org.apache.sis.storage.DataStoreException; import org.constellation.configuration.DataSourceType; import org.constellation.generic.database.Automatic; import org.constellation.sos.io.filesystem.FileObservationReader; import org.constellation.sos.io.filesystem.FileObservationWriter; import org.constellation.sos.io.lucene.LuceneObservationFilter; import org.geotoolkit.observation.ObservationFilter; import org.constellation.sos.io.ObservationReader; import org.constellation.sos.io.ObservationWriter; import java.util.Map; import static org.constellation.configuration.DataSourceType.FILESYSTEM; import static org.constellation.configuration.DataSourceType.LUCENE; /** * A Lucene implementation of the SOS factory. * it provide reader / writer / filter for observations datasource. * * @since 0.8 * @author Guilhem Legal (Geomatys) */ public class LuceneSOSFactory implements OMFactory { /** * {@inheritDoc} */ @Override public boolean factoryMatchType(DataSourceType type) { if (type.equals(LUCENE) || type.equals(FILESYSTEM)) { return true; } return false; } /** * {@inheritDoc} */ @Override public ObservationFilter getObservationFilter(DataSourceType type, Automatic configuration, Map<String, Object> properties) throws DataStoreException { return new LuceneObservationFilter(configuration, properties); } /** * {@inheritDoc} */ @Override public ObservationFilter cloneObservationFilter(ObservationFilter omFilter) throws DataStoreException { return new LuceneObservationFilter((LuceneObservationFilter) omFilter); } /** * {@inheritDoc} */ @Override public ObservationReader getObservationReader(DataSourceType type, Automatic configuration, Map<String, Object> properties) throws DataStoreException { return new FileObservationReader(configuration, properties); } /** * {@inheritDoc} */ @Override public ObservationWriter getObservationWriter(DataSourceType type, Automatic configuration, Map<String, Object> properties) throws DataStoreException { return new FileObservationWriter(configuration, properties); } @Override public boolean buildDatasource(Automatic configuration, Map<String, Object> parameters) { // do nothing return true; } }