Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/server/meta/Converter.java @ 813:57ea5af8a967
Meta data service converter: transfer attributes to client, too.
flys-client/trunk@2469 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 08 Aug 2011 15:54:59 +0000 |
parents | 70b728a9f4e8 |
children | 56069d236afa |
comparison
equal
deleted
inserted
replaced
812:70b728a9f4e8 | 813:57ea5af8a967 |
---|---|
2 | 2 |
3 import org.w3c.dom.Document; | 3 import org.w3c.dom.Document; |
4 import org.w3c.dom.Element; | 4 import org.w3c.dom.Element; |
5 import org.w3c.dom.Node; | 5 import org.w3c.dom.Node; |
6 import org.w3c.dom.NodeList; | 6 import org.w3c.dom.NodeList; |
7 import org.w3c.dom.Attr; | |
8 import org.w3c.dom.NamedNodeMap; | |
9 | |
7 | 10 |
8 import de.intevation.flys.client.shared.model.DataCageTree; | 11 import de.intevation.flys.client.shared.model.DataCageTree; |
9 import de.intevation.flys.client.shared.model.DataCageNode; | 12 import de.intevation.flys.client.shared.model.DataCageNode; |
13 import de.intevation.flys.client.shared.model.AttrList; | |
10 | 14 |
11 import java.util.ArrayList; | 15 import java.util.ArrayList; |
12 import java.util.Map; | 16 import java.util.Map; |
13 import java.util.HashMap; | 17 import java.util.HashMap; |
14 | 18 |
23 } // interface NodeConverter | 27 } // interface NodeConverter |
24 | 28 |
25 public static class NameConverter implements NodeConverter { | 29 public static class NameConverter implements NodeConverter { |
26 public DataCageNode convert(Element node, Converter converter) { | 30 public DataCageNode convert(Element node, Converter converter) { |
27 System.err.println("NameConverter called"); | 31 System.err.println("NameConverter called"); |
28 DataCageNode out = new DataCageNode(node.getAttribute("name")); | 32 DataCageNode out = new DataCageNode( |
33 node.getAttribute("name"), | |
34 toAttrList(node.getAttributes())); | |
29 converter.convertChildren(out, node); | 35 converter.convertChildren(out, node); |
30 return out; | 36 return out; |
31 } | 37 } |
32 } // class NameConverter | 38 } // class NameConverter |
33 | 39 |
34 public static class I18NConverter implements NodeConverter { | 40 public static class I18NConverter implements NodeConverter { |
35 public DataCageNode convert(Element node, Converter converter) { | 41 public DataCageNode convert(Element node, Converter converter) { |
36 System.err.println("I18NConverter called"); | 42 System.err.println("I18NConverter called"); |
37 DataCageNode out = | 43 DataCageNode out = |
38 new DataCageNode("${" + node.getLocalName() + "}"); | 44 new DataCageNode( |
45 "${" + node.getLocalName() + "}", | |
46 toAttrList(node.getAttributes())); | |
39 converter.convertChildren(out, node); | 47 converter.convertChildren(out, node); |
40 return out; | 48 return out; |
41 } | 49 } |
42 } // I18NConverter | 50 } // I18NConverter |
43 | 51 |
97 } | 105 } |
98 return roots.isEmpty() | 106 return roots.isEmpty() |
99 ? new DataCageTree() | 107 ? new DataCageTree() |
100 : new DataCageTree(roots.get(0)); | 108 : new DataCageTree(roots.get(0)); |
101 } | 109 } |
110 | |
111 public static AttrList toAttrList(NamedNodeMap nodeMap) { | |
112 if (nodeMap == null) { | |
113 return null; | |
114 } | |
115 int N = nodeMap.getLength(); | |
116 | |
117 if (N == 0) { | |
118 return null; | |
119 } | |
120 | |
121 AttrList result = new AttrList(N); | |
122 | |
123 for (int i = 0; i < N; ++i) { | |
124 Node node = nodeMap.item(i); | |
125 if (node.getNodeType() == Node.ATTRIBUTE_NODE) { | |
126 Attr attr = (Attr)node; | |
127 String key = attr.getName(); | |
128 String value = attr.getValue(); | |
129 result.add(key, value); | |
130 } | |
131 } | |
132 | |
133 return result; | |
134 } | |
102 } | 135 } |
103 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 136 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |