view flys-artifacts/src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java @ 5622:b28a6d05e969

Add a new mechanism in mapfish print call to add arbitary data maps Data properties are identified by starting with mapfish-data and they are then split in info value pairs where info can be the description of the information and value the value of the information to be transported in the data map.
author Andre Heinecke <aheinecke@intevation.de>
date Tue, 09 Apr 2013 19:04:32 +0200
parents 28be160b5870
children
line wrap: on
line source
package de.intevation.flys.artifacts.context;

import java.util.Map;

import org.apache.log4j.Logger;

import org.w3c.dom.Document;

import de.intevation.artifactdatabase.DefaultArtifactContext;
import de.intevation.artifacts.CallContext;
import de.intevation.flys.exports.OutGenerator;


/**
 * This class is used to store application wide information in a global context.
 *
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class FLYSContext extends DefaultArtifactContext {

    /** The logger used in this class. */
    private static Logger logger = Logger.getLogger(FLYSContext.class);

    /** The key that is used to store the StateEngine in the context. */
    public static final String ARTIFACT_KEY =
        "artifact";

    /** The key that is used to store the TransitionEngine in the context. */
    public static final String TRANSITION_ENGINE_KEY =
        "artifact.transition.engine";

    /** The key that is used to store the StateEngine in the context. */
    public static final String STATE_ENGINE_KEY =
        "artifact.state.engine";

    /** The key that is used to store the Map of OutGenerator classes in the
     * context. */
    public static final String OUTGENERATORS_KEY =
        "flys.export.outgenerators";

    /** The key that is used to store the map of themes in the context. */
    public static final String THEMES =
        "flys.themes.map";

    /** The key that is used to store a map of theme mappings in the context. */
    public static final String THEME_MAPPING =
        "flys.themes.mapping.map";

    /** The key that is used to store a map of WMS urls for each river. */
    public static final String RIVER_WMS =
        "flys.floodmap.river.wms";

    /** The key that is used to store an instance of Scheduler in the context.*/
    public static final String SCHEDULER =
        "flys.wsplgen.scheduler";

    /** Key to store the configured modules in the context. */
    public static final String MODULES = "flys.modules";


    /**
     * The default constructor.
     */
    public FLYSContext() {
        super();
    }


    /**
     * A constructor with a config document.
     */
    public FLYSContext(Document config) {
        super(config);
    }

    /**
     * Returns the OutGenerator for a specified <i>type</i>.
     *
     * @param name The name of the output type.
     * @param type Defines the type of the desired OutGenerator.
     *
     * @return Instance of an OutGenerator for specified <i>type</i>.
     */
    public static OutGenerator getOutGenerator(
        CallContext context,
        String      name,
        String      type)
    {

        FLYSContext flysContext = context instanceof FLYSContext
            ? (FLYSContext) context
            : (FLYSContext) context.globalContext();

        Map<String, Class> generators = (Map<String, Class>)
            flysContext.get(FLYSContext.OUTGENERATORS_KEY);

        if (generators == null) {
            return null;
        }

        Class clazz = generators.get(name);

        try {
            return clazz != null ? (OutGenerator) clazz.newInstance() : null;
        }
        catch (InstantiationException ie) {
            logger.error(ie, ie);
        }
        catch (IllegalAccessException iae) {
            logger.error(iae, iae);
        }

        return null;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org