Package org.geoserver.solr

Source Code of org.geoserver.solr.SolrFeatureTypeCallback

/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.solr;

import java.io.IOException;

import org.geoserver.catalog.FeatureTypeInfo;
import org.geoserver.catalog.FeatureTypeCallback;
import org.geotools.data.DataAccess;
import org.geotools.data.solr.SolrDataStore;
import org.geotools.data.solr.SolrLayerConfiguration;
import org.opengis.feature.Feature;
import org.opengis.feature.type.FeatureType;
import org.opengis.feature.type.Name;

/**
*
* Implementation of FeatureTypeInitializer extension point to initialize SOLR datastore
*
* @see {@link FeatureTypeCallback}
*
*/
public class SolrFeatureTypeCallback implements FeatureTypeCallback {

    @Override
    public boolean canHandle(FeatureTypeInfo info,
            DataAccess<? extends FeatureType, ? extends Feature> dataAccess) {
        if (dataAccess instanceof SolrDataStore) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public boolean initialize(FeatureTypeInfo info,
            DataAccess<? extends FeatureType, ? extends Feature> dataAccess, Name temporaryName)
            throws IOException {
        SolrLayerConfiguration configuration = (SolrLayerConfiguration) info.getMetadata().get(
                SolrLayerConfiguration.KEY);
        if (configuration != null) {
            SolrDataStore dataStore = (SolrDataStore) dataAccess;
            dataStore.setSolrConfigurations(configuration);
        }
        // we never use the temp name
        return false;
    }

    @Override
    public void dispose(FeatureTypeInfo info,
            DataAccess<? extends FeatureType, ? extends Feature> dataAccess, Name temporaryName)
            throws IOException {
        SolrLayerConfiguration configuration = (SolrLayerConfiguration) info.getMetadata().get(
                SolrLayerConfiguration.KEY);
        SolrDataStore dataStore = (SolrDataStore) dataAccess;
        dataStore.getSolrConfigurations().remove(configuration.getLayerName());
    }

    @Override
    public void flush(FeatureTypeInfo info,
            DataAccess<? extends FeatureType, ? extends Feature> dataAccess) throws IOException {
        // nothing to do
    }

}
TOP

Related Classes of org.geoserver.solr.SolrFeatureTypeCallback

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.