Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/server/meta/Converter.java @ 4352:823c8afa1335
Refactor Converter to use common code
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Thu, 01 Nov 2012 14:49:43 +0100 |
parents | b21840188264 |
children |
comparison
equal
deleted
inserted
replaced
4351:cb1655e87ce6 | 4352:823c8afa1335 |
---|---|
80 } | 80 } |
81 | 81 |
82 | 82 |
83 public DataCageTree convert(Document document) { | 83 public DataCageTree convert(Document document) { |
84 logger.debug("convert called"); | 84 logger.debug("convert called"); |
85 //System.err.println(XMLUtils.toString(document)); | 85 |
86 if (logger.isDebugEnabled()) { | |
87 logger.debug(XMLUtils.toString(document)); | |
88 } | |
86 | 89 |
87 ArrayList<DataCageNode> roots = new ArrayList<DataCageNode>(); | 90 ArrayList<DataCageNode> roots = new ArrayList<DataCageNode>(); |
88 NodeList nodes = document.getChildNodes(); | 91 NodeList nodes = document.getChildNodes(); |
89 for (int i = 0, N = nodes.getLength(); i < N; ++i) { | 92 for (int i = 0, N = nodes.getLength(); i < N; ++i) { |
90 Node node = nodes.item(i); | 93 Node node = nodes.item(i); |
91 if (node.getNodeType() == Node.ELEMENT_NODE) { | 94 if (node.getNodeType() == Node.ELEMENT_NODE) { |
92 logger.debug("search for name: " + node.getLocalName()); | 95 Element ele = (Element)node; |
93 NodeConverter converter = converters.get(node.getLocalName()); | 96 roots.add(convertElement(ele)); |
94 if (converter == null) { | |
95 converter = I18N_CONVERTER; | |
96 } | |
97 roots.add(converter.convert((Element)node, this)); | |
98 } | 97 } |
99 } | 98 } |
100 return roots.isEmpty() | 99 return roots.isEmpty() |
101 ? new DataCageTree() | 100 ? new DataCageTree() |
102 : new DataCageTree(roots.get(0)); | 101 : new DataCageTree(roots.get(0)); |
106 //System.err.println("convertChildren called"); | 105 //System.err.println("convertChildren called"); |
107 NodeList children = sub.getChildNodes(); | 106 NodeList children = sub.getChildNodes(); |
108 for (int i = 0, N = children.getLength(); i < N; ++i) { | 107 for (int i = 0, N = children.getLength(); i < N; ++i) { |
109 Node child = children.item(i); | 108 Node child = children.item(i); |
110 if (child.getNodeType() == Node.ELEMENT_NODE) { | 109 if (child.getNodeType() == Node.ELEMENT_NODE) { |
111 String name = child.getLocalName(); | 110 Element childele = (Element)child; |
112 NodeConverter converter = converters.get(name); | 111 parent.addChild(convertElement(childele)); |
113 if (converter == null) { | |
114 converter = I18N_CONVERTER; | |
115 } | |
116 DataCageNode son = converter.convert( | |
117 (Element)child, this); | |
118 parent.addChild(son); | |
119 | 112 |
120 if (((Element)child).hasAttribute("description")) | 113 if (childele.hasAttribute("description")) |
121 logger.debug("nwd: " + ((Element)child).getAttribute("description")); | 114 logger.debug("nwd: " + childele.getAttribute("description")); |
122 } | 115 } |
123 } // for all children | 116 } // for all children |
117 } | |
118 | |
119 private DataCageNode convertElement(Element element) { | |
120 String name = element.getLocalName(); | |
121 | |
122 logger.debug("search for name: " + name); | |
123 | |
124 NodeConverter converter = converters.get(name); | |
125 if (converter == null) { | |
126 converter = I18N_CONVERTER; | |
127 } | |
128 return converter.convert(element, this); | |
129 | |
124 } | 130 } |
125 | 131 |
126 | 132 |
127 /** | 133 /** |
128 * Creates key/value pairs from Nodes Attributes. | 134 * Creates key/value pairs from Nodes Attributes. |