comparison flys-client/src/main/java/de/intevation/flys/client/server/meta/Converter.java @ 3474:4b8b9b2ac873

Doc added, uses static map in converter. flys-client/trunk@5168 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Wed, 08 Aug 2012 07:00:52 +0000
parents 51ed89b754ae
children 9b29facddbd1
comparison
equal deleted inserted replaced
3473:60bf22a14ed8 3474:4b8b9b2ac873
17 import java.util.Map; 17 import java.util.Map;
18 import java.util.HashMap; 18 import java.util.HashMap;
19 19
20 import de.intevation.artifacts.common.utils.XMLUtils; 20 import de.intevation.artifacts.common.utils.XMLUtils;
21 21
22 /**
23 * Converts document parts (meta-data xml) to datacagenodes/trees,
24 * which are shown in datacage widgets.
25 */
22 public class Converter 26 public class Converter
23 { 27 {
24 private static final Logger logger = Logger.getLogger(Converter.class); 28 private static final Logger logger = Logger.getLogger(Converter.class);
25 29
26 30
56 converter.convertChildren(out, node); 60 converter.convertChildren(out, node);
57 return out; 61 return out;
58 } 62 }
59 } // I18NConverter 63 } // I18NConverter
60 64
61 protected Map<String, NodeConverter> converters; 65 private static Map<String, NodeConverter> converters;
62 66
63 protected void convertChildren(DataCageNode parent, Element sub) { 67 protected void convertChildren(DataCageNode parent, Element sub) {
64 //System.err.println("convertChildren called"); 68 //System.err.println("convertChildren called");
65 NodeList children = sub.getChildNodes(); 69 NodeList children = sub.getChildNodes();
66 for (int i = 0, N = children.getLength(); i < N; ++i) { 70 for (int i = 0, N = children.getLength(); i < N; ++i) {
76 parent.addChild(son); 80 parent.addChild(son);
77 } 81 }
78 } // for all children 82 } // for all children
79 } 83 }
80 84
81 public Converter() {
82 converters = new HashMap<String, NodeConverter>();
83 registerConverters();
84 }
85
86 public static final NodeConverter NAME_CONVERTER = new NameConverter(); 85 public static final NodeConverter NAME_CONVERTER = new NameConverter();
87 public static final NodeConverter I18N_CONVERTER = new I18NConverter(); 86 public static final NodeConverter I18N_CONVERTER = new I18NConverter();
88 87
89 protected void registerConverters() { 88 static {
90 logger.debug("register converters called");
91 converters.put("river", NAME_CONVERTER); 89 converters.put("river", NAME_CONVERTER);
92 converters.put("gauge", NAME_CONVERTER); 90 converters.put("gauge", NAME_CONVERTER);
93 converters.put("historical", NAME_CONVERTER); 91 converters.put("historical", NAME_CONVERTER);
94 converters.put("column", NAME_CONVERTER); 92 converters.put("column", NAME_CONVERTER);
95 } 93 }
96 94
95 public Converter() {
96 converters = new HashMap<String, NodeConverter>();
97 }
98
97 public DataCageTree convert(Document document) { 99 public DataCageTree convert(Document document) {
98 logger.debug("convert called"); 100 logger.debug("convert called");
99 //System.err.println(XMLUtils.toString(document)); 101 //System.err.println(XMLUtils.toString(document));
100 102
103 // TODO Fetch descriptions/tooltips if any...
101 ArrayList<DataCageNode> roots = new ArrayList<DataCageNode>(); 104 ArrayList<DataCageNode> roots = new ArrayList<DataCageNode>();
102 NodeList nodes = document.getChildNodes(); 105 NodeList nodes = document.getChildNodes();
103 for (int i = 0, N = nodes.getLength(); i < N; ++i) { 106 for (int i = 0, N = nodes.getLength(); i < N; ++i) {
104 Node node = nodes.item(i); 107 Node node = nodes.item(i);
105 if (node.getNodeType() == Node.ELEMENT_NODE) { 108 if (node.getNodeType() == Node.ELEMENT_NODE) {
114 return roots.isEmpty() 117 return roots.isEmpty()
115 ? new DataCageTree() 118 ? new DataCageTree()
116 : new DataCageTree(roots.get(0)); 119 : new DataCageTree(roots.get(0));
117 } 120 }
118 121
122
123 /**
124 * Creates key/value pairs from Nodes Attributes.
125 */
119 public static AttrList toAttrList(NamedNodeMap nodeMap) { 126 public static AttrList toAttrList(NamedNodeMap nodeMap) {
120 if (nodeMap == null) { 127 if (nodeMap == null) {
121 return null; 128 return null;
122 } 129 }
123 int N = nodeMap.getLength(); 130 int N = nodeMap.getLength();

http://dive4elements.wald.intevation.org