Package org.geoserver.kml

Source Code of org.geoserver.kml.ReflectiveRegionatingStrategyFactory

package org.geoserver.kml;

import java.lang.reflect.Constructor;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.geoserver.config.GeoServer;
import org.geoserver.platform.ServiceException;

public class ReflectiveRegionatingStrategyFactory implements RegionatingStrategyFactory {
    private static final Logger LOGGER =
        org.geotools.util.logging.Logging.getLogger("org.geoserver.geosearch");


    String myName;
    String myClassName;
    Class myStrategyClass;
    GeoServer gs;

    public ReflectiveRegionatingStrategyFactory(String name, String className, GeoServer gs){
        myName = name;
        myClassName = className;
        this.gs = gs;
    }

    public ReflectiveRegionatingStrategyFactory(String name, Class strategy, GeoServer gs){
        myName = name;
        myStrategyClass = strategy;
        this.gs = gs;
    }

    public boolean canHandle(String strategyName){
        return (myName != null) && myName.equalsIgnoreCase(strategyName);
    }

    public String getName(){
        return myName;
    }

    public RegionatingStrategy createStrategy(){
        try{
            Class clazz = getStrategyClass();
            Constructor c = clazz.getConstructor( GeoServer.class );
            if ( c != null ) {
                return (RegionatingStrategy) c.newInstance( gs );
            }
           
            return (RegionatingStrategy)clazz.newInstance();
        } catch (Exception e){
            throw new ServiceException(e);
        }
    }

    protected Class getStrategyClass() {
        if (myStrategyClass != null)
            return myStrategyClass;

        try{
            myStrategyClass = Class.forName(myClassName);
        } catch (Exception e){
            LOGGER.log(Level.SEVERE,
                "Failed to find class " + myClassName + " for ReflectiveRegionatingStrategy.",
                e
                );
        }

        return myStrategyClass;
    }
}
TOP

Related Classes of org.geoserver.kml.ReflectiveRegionatingStrategyFactory

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.