diff gnv-artifacts/src/main/java/de/intevation/gnv/transition/OutputTransitionBase.java @ 64:5db77e0a8594

Integrated Output Methods and Interfacsstructure gnv-artifacts/trunk@47 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Wed, 09 Sep 2009 11:01:55 +0000
parents
children 5d4f5d26bb7a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/OutputTransitionBase.java	Wed Sep 09 11:01:55 2009 +0000
@@ -0,0 +1,66 @@
+/**
+ *
+ */
+package de.intevation.gnv.transition;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.apache.log4j.Logger;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import de.intevation.artifactdatabase.Config;
+
+/**
+ * @author Tim Englich <tim.englich@intevation.de>
+ *
+ */
+public abstract class OutputTransitionBase extends TransitionBase implements
+        OutputTransition {
+    /**
+     * the logger, used to log exceptions and additonaly information
+     */
+    private static Logger log = Logger.getLogger(OutputTransitionBase.class);
+    
+    protected Collection<OutputMode> outputModes = null;
+    /**
+     * Constructor
+     */
+    public OutputTransitionBase() {
+        super();
+    }
+
+    /**
+     * @see de.intevation.gnv.transition.OutputTransition#getOutputModes()
+     */
+    public Collection<OutputMode> getOutputModes() {
+        log.debug("OutputTransitionBase.getOutputModes");
+        return this.outputModes;
+    }
+
+    /**
+     * @see de.intevation.gnv.transition.TransitionBase#setup(org.w3c.dom.Node)
+     */
+    @Override
+    public void setup(Node configuration) {
+        log.debug("OutputTransitionBase.setup");
+        super.setup(configuration);
+        NodeList outputModeList = Config.getNodeSetXPath(configuration, "outputsModes/outputsMode");
+        if (outputModeList != null){
+            log.debug(outputModeList.getLength()+ " were found.");
+            this.outputModes = new ArrayList<OutputMode>(outputModeList.getLength());
+            for (int i = 0; i < outputModeList.getLength(); i++){
+                Node currentNode = outputModeList.item(i);
+                String name  = Config.getStringXPath(currentNode, "@name");
+                String description  = Config.getStringXPath(currentNode, "@description");
+                String mimeType = Config.getStringXPath(currentNode, "@mime-type");
+                OutputMode outputMode = new DefaultOutputMode(name, description, mimeType);
+                log.debug(outputMode.toString());
+                this.outputModes.add(outputMode);
+                
+            }
+        }
+    }
+
+}

http://dive4elements.wald.intevation.org