Mercurial > dive4elements > gnv-client
view gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java @ 53:e464d9f9d967
Added getDescription to a Transition
gnv-artifacts/trunk@35 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 08 Sep 2009 09:03:48 +0000 |
parents | 4d6a82b96059 |
children | 09b4bf848c7b |
line wrap: on
line source
/** * */ package de.intevation.gnv.artifacts; import java.util.HashMap; import java.util.Map; import org.apache.log4j.Logger; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import de.intevation.artifactdatabase.Config; import de.intevation.artifactdatabase.DefaultArtifact; import de.intevation.gnv.artifacts.context.GNVArtifactContext; import de.intevation.gnv.transition.Transition; import de.intevation.gnv.transition.TransitionFactory; /** * @author Tim Englich <tim.englich@intevation.de> * */ public abstract class GNVArtifactBase extends DefaultArtifact { /** * the logger, used to log exceptions and additonaly information */ private static Logger log = Logger.getLogger(GNVArtifactBase.class); /** * The UID of this Class */ private static final long serialVersionUID = -8907096744400741458L; public static final String XPATH_IDENTIFIER_REPLACE = "IDENTIFIER"; /** * The XPATH to the XML-Fragment that should be used for the Configuration */ public static final String XPATH_ARTIFACT_CONFIGURATION= "/artifact-database/artifacts/artifact[@name='"+XPATH_IDENTIFIER_REPLACE+"']"; protected Transition current = null; protected Map<String, Transition> transitions = null; protected String name = null; /** * Constructor */ public GNVArtifactBase() { super(); } protected Node getConfigurationFragment(Document document){ log.debug("GNVArtifactBase.getConfigurationFragment"); String xpathQuery = XPATH_ARTIFACT_CONFIGURATION.replaceAll(XPATH_IDENTIFIER_REPLACE, this.name); log.debug(xpathQuery); return Config.getNodeXPath(document,xpathQuery); } /** * @see de.intevation.artifactdatabase.DefaultArtifact#setup(java.lang.String, java.lang.Object) */ @Override public void setup(String identifier, Object context) { log.debug("GNVArtifactBase.setup"); super.setup(identifier, context); if (context instanceof GNVArtifactContext){ GNVArtifactContext gnvContext = (GNVArtifactContext)context; Document doc = gnvContext.getConfig(); Node artifactNode = this.getConfigurationFragment(doc); NodeList transitionList = Config.getNodeSetXPath(artifactNode, "transitions/transition"); this.transitions = new HashMap<String, Transition>(transitionList.getLength()); for (int i = 0 ; i < transitionList.getLength(); i++){ Transition tmpTransition = TransitionFactory.getInstance().createTransition(transitionList.item(i)); if (tmpTransition != null){ this.transitions.put(tmpTransition.getID(), tmpTransition); if (this.current == null){ this.current = tmpTransition; } } } } } }