diff flys-client/src/main/java/de/intevation/flys/client/server/meta/Converter.java @ 812:70b728a9f4e8

Meta data service: Create correct request document now. flys-client/trunk@2468 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 08 Aug 2011 14:49:14 +0000
parents 2e02db03e576
children 57ea5af8a967
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/meta/Converter.java	Mon Aug 08 11:02:45 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/meta/Converter.java	Mon Aug 08 14:49:14 2011 +0000
@@ -12,6 +12,8 @@
 import java.util.Map;
 import java.util.HashMap;
 
+import de.intevation.artifacts.common.utils.XMLUtils;
+
 public class Converter
 {
     public interface NodeConverter
@@ -49,11 +51,12 @@
             if (child.getNodeType() == Node.ELEMENT_NODE) {
                 String name = child.getLocalName();
                 NodeConverter converter = converters.get(name);
-                if (converter != null) {
-                    DataCageNode son = converter.convert(
-                        (Element)child, this);
-                    parent.addChild(son);
+                if (converter == null) {
+                    converter = I18N_CONVERTER;
                 }
+                DataCageNode son = converter.convert(
+                    (Element)child, this);
+                parent.addChild(son);
             }
         } // for all children
     }
@@ -63,31 +66,21 @@
         registerConverters();
     }
 
+    public static final NodeConverter NAME_CONVERTER = new NameConverter(); 
+    public static final NodeConverter I18N_CONVERTER = new I18NConverter(); 
+
     protected void registerConverters() {
         System.err.println("register converters called");
-        converters.put("datacage",                    new NameConverter());
-        converters.put("river",                       new NameConverter());
-        converters.put("gauge",                       new NameConverter());
-        converters.put("historical",                  new NameConverter());
-        converters.put("discharge-table-nn",          new I18NConverter());
-        converters.put("discharge-table-gauge",       new I18NConverter());
-        converters.put("fixations",                   new I18NConverter());
-        converters.put("fixation",                    new I18NConverter());
-        converters.put("columns",                     new I18NConverter());
-        converters.put("column",                      new NameConverter());
-        converters.put("flood-protections",           new I18NConverter());
-        converters.put("flood-protection",            new I18NConverter());
-        converters.put("flood-water-marks",           new I18NConverter());
-        converters.put("flood-water-mark",            new I18NConverter());
-        converters.put("water-levels",                new I18NConverter());
-        converters.put("water-level",                 new I18NConverter());
-        converters.put("extra-longitudinal-sections", new I18NConverter());
-        converters.put("extra-longitudinal-section",  new I18NConverter());
-        converters.put("longitudinal-section",        new I18NConverter());
+        converters.put("datacage",   NAME_CONVERTER);
+        converters.put("river",      NAME_CONVERTER);
+        converters.put("gauge",      NAME_CONVERTER);
+        converters.put("historical", NAME_CONVERTER);
+        converters.put("column",     NAME_CONVERTER);
     }
 
     public DataCageTree convert(Document document) {
         System.err.println("convert called");
+        //System.err.println(XMLUtils.toString(document));
 
         ArrayList<DataCageNode> roots = new ArrayList<DataCageNode>();
         NodeList nodes = document.getChildNodes();
@@ -96,9 +89,10 @@
             if (node.getNodeType() == Node.ELEMENT_NODE) {
                 System.err.println("search for name: " + node.getLocalName());
                 NodeConverter converter = converters.get(node.getLocalName());
-                if (converter != null) {
-                    roots.add(converter.convert((Element)node, this));
+                if (converter == null) {
+                    converter = I18N_CONVERTER;
                 }
+                roots.add(converter.convert((Element)node, this));
             }
         }
         return roots.isEmpty()

http://dive4elements.wald.intevation.org