diff gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java @ 78:969faa37a11b

Added Multiselectsupport for InputValues gnv-artifacts/trunk@94 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Wed, 16 Sep 2009 12:38:24 +0000
parents 0e38f512f7e4
children 1b12021905b9
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java	Wed Sep 16 07:49:46 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java	Wed Sep 16 12:38:24 2009 +0000
@@ -305,21 +305,31 @@
     
     protected Collection<InputData> parseInputData(Document document){
         log.debug("GNVArtifactBase.parseInputData");
-        Collection<InputData> returnValue = null;
+        HashMap<String,InputData> returnValue = null;
         
         log.debug(new ArtifactXMLUtilities().writeDocument2String(document));
         
         NodeList inputElemets = (NodeList)XMLUtils.xpath(document, "/action/data/input",XPathConstants.NODESET, ArtifactNamespaceContext.INSTANCE);//Config.getNodeSetXPath(document, "");
         if(inputElemets != null){
-            returnValue = new ArrayList<InputData>(inputElemets.getLength());
+            returnValue = new HashMap<String,InputData>(inputElemets.getLength());
             for (int i = 0; i < inputElemets.getLength(); i++){
                 Node inputDataNode = inputElemets.item(i);
-                InputData inputData = new DefaultInputData(Config.getStringXPath(inputDataNode,"@name"), Config.getStringXPath(inputDataNode,"@value"));
-                log.debug(inputData.toString());
-                returnValue.add(inputData);
+                String name = Config.getStringXPath(inputDataNode,"@name");
+                String value = Config.getStringXPath(inputDataNode,"@value");
+                
+                if (returnValue.containsKey(name)){
+                    InputData inputData = returnValue.get(name);
+                    inputData.concartValue(value);
+                    log.debug(inputData.toString());
+                    returnValue.put(name, inputData);
+                }else{
+                    InputData inputData = new DefaultInputData(name,value);
+                    
+                    returnValue.put(name,inputData);
+                }
             }
         }
-        return returnValue;
+        return returnValue.values();
     }
     /**
      * @see de.intevation.artifactdatabase.DefaultArtifact#out(org.w3c.dom.Document, java.lang.Object)

http://dive4elements.wald.intevation.org