Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java @ 4031:e4e345d81a65
issue889/2
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Thu, 04 Oct 2012 14:54:44 +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 :