Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/server/meta/Converter.java @ 5993:ea9eef426962
Removed trailing whitespace.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Sun, 12 May 2013 18:10:57 +0200 |
parents | 172338b1407f |
children | 238fc722f87a |
rev | line source |
---|---|
5861
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5993
ea9eef426962
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5861
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5861
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5993
ea9eef426962
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5861
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5861
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
172338b1407f
GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
9 package org.dive4elements.river.client.server.meta; |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 import org.w3c.dom.Document; |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 import org.w3c.dom.Element; |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 import org.w3c.dom.Node; |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 import org.w3c.dom.NodeList; |
813
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
15 import org.w3c.dom.Attr; |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
16 import org.w3c.dom.NamedNodeMap; |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
17 |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
892
diff
changeset
|
18 import org.apache.log4j.Logger; |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
19 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
20 import org.dive4elements.river.client.shared.model.DataCageTree; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
21 import org.dive4elements.river.client.shared.model.DataCageNode; |
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
22 import org.dive4elements.river.client.shared.model.AttrList; |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
24 import java.util.ArrayList; |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 import java.util.Map; |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 import java.util.HashMap; |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 |
5835
821a02bbfb4e
Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5834
diff
changeset
|
28 import org.dive4elements.artifacts.common.utils.XMLUtils; |
812
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
522
diff
changeset
|
29 |
3474
4b8b9b2ac873
Doc added, uses static map in converter.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2905
diff
changeset
|
30 /** |
4b8b9b2ac873
Doc added, uses static map in converter.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2905
diff
changeset
|
31 * Converts document parts (meta-data xml) to datacagenodes/trees, |
4b8b9b2ac873
Doc added, uses static map in converter.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2905
diff
changeset
|
32 * which are shown in datacage widgets. |
4b8b9b2ac873
Doc added, uses static map in converter.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2905
diff
changeset
|
33 */ |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
34 public class Converter |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
35 { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
892
diff
changeset
|
36 private static final Logger logger = Logger.getLogger(Converter.class); |
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
892
diff
changeset
|
37 |
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
892
diff
changeset
|
38 |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
39 public interface NodeConverter |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
40 { |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
41 DataCageNode convert(Element node, Converter converter); |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
43 } // interface NodeConverter |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
44 |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
45 public static class NameConverter implements NodeConverter { |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
46 public DataCageNode convert(Element node, Converter converter) { |
822
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
821
diff
changeset
|
47 //System.err.println("NameConverter called"); |
813
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
48 DataCageNode out = new DataCageNode( |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
49 node.getAttribute("name"), |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
50 toAttrList(node.getAttributes())); |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 converter.convertChildren(out, node); |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 return out; |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
53 } |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
54 } // class NameConverter |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
56 public static class I18NConverter implements NodeConverter { |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
57 public DataCageNode convert(Element node, Converter converter) { |
822
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
821
diff
changeset
|
58 //System.err.println("I18NConverter called"); |
892
63b258bf365c
Bugfix: Use name instead of description for loading new facets via Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
822
diff
changeset
|
59 |
63b258bf365c
Bugfix: Use name instead of description for loading new facets via Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
822
diff
changeset
|
60 String name = node.getLocalName(); |
63b258bf365c
Bugfix: Use name instead of description for loading new facets via Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
822
diff
changeset
|
61 String desc = node.hasAttribute("description") |
822
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
821
diff
changeset
|
62 ? node.getAttribute("description") |
892
63b258bf365c
Bugfix: Use name instead of description for loading new facets via Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
822
diff
changeset
|
63 : "${" + name + "}"; |
63b258bf365c
Bugfix: Use name instead of description for loading new facets via Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
822
diff
changeset
|
64 |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
65 DataCageNode out = |
892
63b258bf365c
Bugfix: Use name instead of description for loading new facets via Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
822
diff
changeset
|
66 new DataCageNode(name, desc, toAttrList(node.getAttributes())); |
63b258bf365c
Bugfix: Use name instead of description for loading new facets via Datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
822
diff
changeset
|
67 |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
68 converter.convertChildren(out, node); |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
69 return out; |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
70 } |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
71 } // I18NConverter |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
72 |
3475
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
73 private static Map<String, NodeConverter> converters = new HashMap<String, NodeConverter>(); |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
74 |
2905
51ed89b754ae
FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1367
diff
changeset
|
75 public static final NodeConverter NAME_CONVERTER = new NameConverter(); |
51ed89b754ae
FLYS client: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1367
diff
changeset
|
76 public static final NodeConverter I18N_CONVERTER = new I18NConverter(); |
812
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
522
diff
changeset
|
77 |
3474
4b8b9b2ac873
Doc added, uses static map in converter.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2905
diff
changeset
|
78 static { |
812
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
522
diff
changeset
|
79 converters.put("river", NAME_CONVERTER); |
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
522
diff
changeset
|
80 converters.put("gauge", NAME_CONVERTER); |
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
522
diff
changeset
|
81 converters.put("historical", NAME_CONVERTER); |
70b728a9f4e8
Meta data service: Create correct request document now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
522
diff
changeset
|
82 converters.put("column", NAME_CONVERTER); |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
83 } |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
84 |
3475
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
85 |
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
86 /** Trivial constructor. */ |
3474
4b8b9b2ac873
Doc added, uses static map in converter.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2905
diff
changeset
|
87 public Converter() { |
4b8b9b2ac873
Doc added, uses static map in converter.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2905
diff
changeset
|
88 } |
4b8b9b2ac873
Doc added, uses static map in converter.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2905
diff
changeset
|
89 |
3475
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
90 |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
91 public DataCageTree convert(Document document) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
892
diff
changeset
|
92 logger.debug("convert called"); |
4352
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
93 |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
94 if (logger.isDebugEnabled()) { |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
95 logger.debug(XMLUtils.toString(document)); |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
96 } |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
97 |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
98 ArrayList<DataCageNode> roots = new ArrayList<DataCageNode>(); |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
99 NodeList nodes = document.getChildNodes(); |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
100 for (int i = 0, N = nodes.getLength(); i < N; ++i) { |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
101 Node node = nodes.item(i); |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
102 if (node.getNodeType() == Node.ELEMENT_NODE) { |
4352
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
103 Element ele = (Element)node; |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
104 roots.add(convertElement(ele)); |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
105 } |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
106 } |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
107 return roots.isEmpty() |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
108 ? new DataCageTree() |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
109 : new DataCageTree(roots.get(0)); |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
110 } |
813
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
111 |
3475
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
112 protected void convertChildren(DataCageNode parent, Element sub) { |
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
113 //System.err.println("convertChildren called"); |
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
114 NodeList children = sub.getChildNodes(); |
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
115 for (int i = 0, N = children.getLength(); i < N; ++i) { |
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
116 Node child = children.item(i); |
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
117 if (child.getNodeType() == Node.ELEMENT_NODE) { |
4352
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
118 Element childele = (Element)child; |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
119 parent.addChild(convertElement(childele)); |
3475
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
120 |
4352
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
121 if (childele.hasAttribute("description")) |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
122 logger.debug("nwd: " + childele.getAttribute("description")); |
3475
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
123 } |
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
124 } // for all children |
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
125 } |
9b29facddbd1
Show tooltips for datacage rows.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3474
diff
changeset
|
126 |
4352
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
127 private DataCageNode convertElement(Element element) { |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
128 String name = element.getLocalName(); |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
129 |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
130 logger.debug("search for name: " + name); |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
131 |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
132 NodeConverter converter = converters.get(name); |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
133 if (converter == null) { |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
134 converter = I18N_CONVERTER; |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
135 } |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
136 return converter.convert(element, this); |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
137 |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
138 } |
823c8afa1335
Refactor Converter to use common code
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3483
diff
changeset
|
139 |
3483
b21840188264
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3475
diff
changeset
|
140 |
3474
4b8b9b2ac873
Doc added, uses static map in converter.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2905
diff
changeset
|
141 /** |
4b8b9b2ac873
Doc added, uses static map in converter.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2905
diff
changeset
|
142 * Creates key/value pairs from Nodes Attributes. |
4b8b9b2ac873
Doc added, uses static map in converter.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2905
diff
changeset
|
143 */ |
813
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
144 public static AttrList toAttrList(NamedNodeMap nodeMap) { |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
145 if (nodeMap == null) { |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
146 return null; |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
147 } |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
148 int N = nodeMap.getLength(); |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
149 |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
150 if (N == 0) { |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
151 return null; |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
152 } |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
153 |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
154 AttrList result = new AttrList(N); |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
155 |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
156 for (int i = 0; i < N; ++i) { |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
157 Node node = nodeMap.item(i); |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
158 if (node.getNodeType() == Node.ATTRIBUTE_NODE) { |
822
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
821
diff
changeset
|
159 Attr attr = (Attr)node; |
813
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
160 String key = attr.getName(); |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
161 String value = attr.getValue(); |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
162 result.add(key, value); |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
163 } |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
164 } |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
165 |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
166 return result; |
57ea5af8a967
Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
812
diff
changeset
|
167 } |
286
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
168 } |
0fa8bf8a2295
Datacage: Better converter for incoming XML tree
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
169 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |