Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/server/DataFactory.java @ 2511:1aa6aec70b97
map print: Simplified config.
flys-client/trunk@4366 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 09 May 2012 16:32:49 +0000 |
parents | 6a65694bdcc2 |
children | 33e2a1e23ae8 |
rev | line source |
---|---|
1571
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.client.server; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
3 import javax.xml.xpath.XPathConstants; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
4 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
5 import org.w3c.dom.Element; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 import org.w3c.dom.NodeList; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 import org.apache.log4j.Logger; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 import de.intevation.artifacts.common.ArtifactNamespaceContext; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import de.intevation.artifacts.common.utils.XMLUtils; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 import de.intevation.flys.client.shared.model.Data; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 import de.intevation.flys.client.shared.model.DataItem; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import de.intevation.flys.client.shared.model.DefaultData; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 import de.intevation.flys.client.shared.model.DefaultDataItem; |
1575
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
17 import de.intevation.flys.client.shared.model.DoubleArrayData; |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
18 import de.intevation.flys.client.shared.model.IntegerArrayData; |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
19 import de.intevation.flys.client.shared.model.IntegerData; |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
20 import de.intevation.flys.client.shared.model.IntegerOptionsData; |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
21 import de.intevation.flys.client.shared.model.IntegerRangeData; |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
22 import de.intevation.flys.client.shared.model.StringData; |
2468
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
23 import de.intevation.flys.client.shared.model.LongRangeData; |
1571
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
24 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 /** |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 */ |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
29 public class DataFactory { |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 private static final Logger logger = Logger.getLogger(DataFactory.class); |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
32 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 public static final String NS_URI = ArtifactNamespaceContext.NAMESPACE_URI; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 /** |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 * Creates a new Data instance based on the <i>art:type</i> attribute of |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 * <i>element</i>. |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 * |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 * @param element The Data element. |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 * |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 * @return a Data instance. |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 */ |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 public static Data createDataFromElement(Element element) { |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 String name = element.getAttributeNS(NS_URI, "name"); |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 String type = element.getAttributeNS(NS_URI, "type"); |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 |
1575
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
48 try { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
49 logger.debug("Create Data instance for: " + name + " | " + type); |
1571
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 |
1575
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
51 if (type == null || type.length() == 0) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
52 return createDefaultData(element, name); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
53 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
54 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
55 type = type.toLowerCase(); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
56 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
57 if (type.equals(StringData.TYPE)) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
58 return createStringData(element, name); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
59 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
60 else if (type.equals(IntegerData.TYPE)) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
61 return createIntegerData(element, name); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
62 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
63 else if (type.equals(IntegerOptionsData.TYPE)) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
64 return createIntegerOptionsData(element, name); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
65 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
66 else if (type.equals(IntegerRangeData.TYPE)) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
67 return createIntegerRangeData(element, name); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
68 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
69 else if (type.equals(IntegerArrayData.TYPE)) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
70 return createIntegerArrayData(element, name); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
71 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
72 else if (type.equals(DoubleArrayData.TYPE)) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
73 return createDoubleArrayData(element, name); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
74 } |
2468
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
75 else if (type.equals(LongRangeData.TYPE)) { |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
76 return createLongRangeData(element, name); |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
77 } |
1575
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
78 else { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
79 return createDefaultData(element, name); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
80 } |
1571
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 } |
1575
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
82 catch (Exception e) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
83 logger.error("Error while data creation for: " + name); |
1571
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 } |
1575
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
85 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
86 return null; |
1571
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 } |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
89 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
90 /** |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
91 * This method creates a new instance of DefaultData which has no real type |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
92 * set. |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
93 * |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 * @param ele The Data element. |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
95 * @param name The name of the Data instance. |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
96 * |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
97 * @return an instance of DefaultData. |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
98 */ |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
99 protected static Data createDefaultData(Element ele, String name) { |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
100 logger.debug("Create new DefaultData"); |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
101 return new DefaultData(name, name, "default", extractDataItems(ele)); |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
102 } |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
103 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
104 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
105 /** |
1575
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
106 * This method creates a new instance of StringData which has a type |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
107 * "string" set. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
108 * |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
109 * @param ele The Data element. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
110 * @param name The name of the Data instance. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
111 * |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
112 * @return an instance of StringData. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
113 */ |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
114 protected static Data createStringData(Element ele, String name) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
115 return new StringData(name, name, extractDataItems(ele)); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
116 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
117 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
118 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
119 /** |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
120 * This method creates a new instance of DefaultData which has a type |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
121 * "integer" set. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
122 * |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
123 * @param ele The Data element. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
124 * @param name The name of the Data instance. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
125 * |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
126 * @return an instance of IntegerData. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
127 */ |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
128 protected static Data createIntegerData(Element ele, String name) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
129 return new IntegerData(name, name, extractDataItems(ele)); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
130 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
131 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
132 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
133 /** |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
134 * This method creates a new instance of DefaultData which has a type |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
135 * "intoptions" set. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
136 * |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
137 * @param ele The Data element. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
138 * @param name The name of the Data instance. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
139 * |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
140 * @return an instance of IntegerOptionsData. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
141 */ |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
142 protected static Data createIntegerOptionsData(Element ele, String name) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
143 return new IntegerOptionsData(name, name, extractDataItems(ele)); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
144 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
145 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
146 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
147 /** |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
148 * This method creates a new instance of DefaultData which has a type |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
149 * "intrange" set. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
150 * |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
151 * @param ele The Data element. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
152 * @param name The name of the Data instance. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
153 * |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
154 * @return an instance of IntegerRangeData. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
155 */ |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
156 protected static Data createIntegerRangeData(Element ele, String name) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
157 DataItem[] items = extractDataItems(ele); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
158 String rawValue = items[0].getStringValue(); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
159 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
160 String[] minmax = rawValue.split(";"); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
161 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
162 return new IntegerRangeData( |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
163 name, |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
164 name, |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
165 Integer.valueOf(minmax[0]), |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
166 Integer.valueOf(minmax[1])); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
167 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
168 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
169 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
170 /** |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
171 * This method creates a new instance of DefaultData which has a type |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
172 * "integerarray" set. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
173 * |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
174 * @param ele The Data element. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
175 * @param name The name of the Data instance. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
176 * |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
177 * @return an instance of IntegerArrayData. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
178 */ |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
179 protected static Data createIntegerArrayData(Element ele, String name) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
180 DataItem[] items = extractDataItems(ele); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
181 String rawValue = items[0].getStringValue(); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
182 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
183 String[] values = rawValue.split(";"); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
184 int[] integers = new int[values.length]; |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
185 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
186 for (int i = 0; i < values.length; i++) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
187 try { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
188 integers[i] = Integer.valueOf(values[i]); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
189 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
190 catch (NumberFormatException nfe) { |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
191 logger.warn("Error while parsing IntegerArrayData: " + nfe); |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
192 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
193 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
194 |
1595
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
195 return new IntegerArrayData(name, items[0].getLabel(), integers); |
1575
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
196 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
197 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
198 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
199 /** |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
200 * This method creates a new instance of DefaultData which has a type |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
201 * "doublearray" set. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
202 * |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
203 * @param ele The Data element. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
204 * @param name The name of the Data instance. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
205 * |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
206 * @return an instance of DoubleArrayData. |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
207 */ |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
208 protected static Data createDoubleArrayData(Element ele, String name) { |
1595
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
209 DataItem[] items = extractDataItems(ele); |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
210 String rawValue = items[0].getStringValue(); |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
211 |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
212 String[] values = rawValue.split(";"); |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
213 double[] doubles = new double[values.length]; |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
214 |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
215 for (int i = 0; i < values.length; i++) { |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
216 try { |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
217 doubles[i] = Double.valueOf(values[i]); |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
218 } |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
219 catch (NumberFormatException nfe) { |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
220 logger.warn("Error while parsing DoubleArrayData: " + nfe); |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
221 } |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
222 } |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
223 |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1586
diff
changeset
|
224 return new DoubleArrayData(name, items[0].getLabel(), doubles); |
1575
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
225 } |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
226 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
227 |
0f2b94408bd1
Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1571
diff
changeset
|
228 /** |
1571
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
229 * This method extracts the art:item elements placed under <i>elements</i>. |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
230 * |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
231 * @param element A data node that contains items. |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
232 * |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
233 * @return a list of DataItems. |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
234 */ |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
235 protected static DataItem[] extractDataItems(Element element) { |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
236 NodeList itemList = (NodeList) XMLUtils.xpath( |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
237 element, |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
238 "art:item", |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
239 XPathConstants.NODESET, |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
240 ArtifactNamespaceContext.INSTANCE); |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
241 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
242 if (itemList == null || itemList.getLength() == 0) { |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
243 logger.debug("No old data items found."); |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
244 return null; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
245 } |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
246 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
247 int count = itemList.getLength(); |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
248 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
249 DataItem[] items = new DataItem[count]; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
250 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
251 for (int i = 0; i < count; i++) { |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
252 Element tmp = (Element) itemList.item(i); |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
253 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
254 String value = tmp.getAttributeNS(NS_URI, "value"); |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
255 String label = tmp.getAttributeNS(NS_URI, "label"); |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
256 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
257 items[i] = new DefaultDataItem(label, label, value); |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
258 } |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
259 |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
260 return items; |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
261 } |
2468
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
262 |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
263 |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
264 /** |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
265 * This method creates a new instance of LongRangeData which has a type |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
266 * "longrange" set. |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
267 * |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
268 * @param ele The Data element. |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
269 * @param name The name of the Data instance. |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
270 * |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
271 * @return an instance of IntegerRangeData. |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
272 */ |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
273 protected static Data createLongRangeData(Element ele, String name) { |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
274 DataItem[] items = extractDataItems(ele); |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
275 String rawValue = items[0].getStringValue(); |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
276 |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
277 String[] minmax = rawValue.split(";"); |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
278 |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
279 return new LongRangeData( |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
280 name, |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
281 name, |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
282 Long.valueOf(minmax[0]), |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
283 Long.valueOf(minmax[1])); |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
284 } |
6a65694bdcc2
Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1595
diff
changeset
|
285 |
1571
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
286 } |
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
287 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |