Mercurial > dive4elements > river
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(); |