annotate gwt-client/src/main/java/org/dive4elements/river/client/server/DataFactory.java @ 9801:1d7a72a50183 3.2.x tip

Assume Compose V2, consistently
author Tom Gottfried <tom@intevation.de>
date Thu, 23 Nov 2023 10:14:13 +0100
parents 0a5239a1e46e
children
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;
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
8071
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
11 import java.util.Collections;
7824
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
12 import java.util.HashMap;
8071
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
13 import java.util.Map;
7824
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
14
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 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
16
8071
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
17 import org.w3c.dom.Attr;
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import org.w3c.dom.Element;
7824
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
19 import org.w3c.dom.NamedNodeMap;
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
20 import org.w3c.dom.Node;
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import org.w3c.dom.NodeList;
9726
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8856
diff changeset
22 import org.apache.logging.log4j.Logger;
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8856
diff changeset
23 import org.apache.logging.log4j.LogManager;
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
24 import org.dive4elements.artifacts.common.ArtifactNamespaceContext;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
25 import org.dive4elements.artifacts.common.utils.XMLUtils;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
26 import org.dive4elements.river.client.shared.model.Data;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
27 import org.dive4elements.river.client.shared.model.DataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
28 import org.dive4elements.river.client.shared.model.DefaultData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
29 import org.dive4elements.river.client.shared.model.DefaultDataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
30 import org.dive4elements.river.client.shared.model.DoubleArrayData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
31 import org.dive4elements.river.client.shared.model.IntegerArrayData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
32 import org.dive4elements.river.client.shared.model.IntegerData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
33 import org.dive4elements.river.client.shared.model.IntegerOptionsData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
34 import org.dive4elements.river.client.shared.model.IntegerRangeData;
7824
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
35 import org.dive4elements.river.client.shared.model.MultiAttributeData;
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
36 import org.dive4elements.river.client.shared.model.MultiDataItem;
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
37 import org.dive4elements.river.client.shared.model.StringData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
38 import org.dive4elements.river.client.shared.model.StringOptionsData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
39 import org.dive4elements.river.client.shared.model.LongRangeData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
40 import org.dive4elements.river.client.shared.model.IntDataItem;
1571
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 /**
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 * @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
44 */
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 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
46
9726
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8856
diff changeset
47 private static final Logger log = LogManager.getLogger(DataFactory.class);
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 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
50
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 /**
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 * 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
54 * <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
55 *
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 * @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
57 *
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 * @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
59 */
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 public static Data createDataFromElement(Element element) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
61 String name = element.getAttributeNS(NS_URI, "name");
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
62 String type = element.getAttributeNS(NS_URI, "type");
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
63 String label = element.getAttributeNS(NS_URI, "label");
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
64
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
65 label = label != null && label.length() > 0 ? label : name;
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
67 try {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8071
diff changeset
68 log.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
69
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
70 if (type == null || type.length() == 0) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
71 return createDefaultData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
72 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
73
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
74 type = type.toLowerCase();
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
75
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
76 if (type.equals(StringData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
77 return createStringData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
78 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
79 else if (type.equals(IntegerData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
80 return createIntegerData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
81 }
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
82 else if (type.equals(StringOptionsData.TYPE)) {
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
83 return createStringOptionsData(element, name, label);
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
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 else if (type.equals(IntegerOptionsData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
86 return createIntegerOptionsData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
87 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
88 else if (type.equals(IntegerRangeData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
89 return createIntegerRangeData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
90 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
91 else if (type.equals(IntegerArrayData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
92 return createIntegerArrayData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
93 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
94 else if (type.equals(DoubleArrayData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
95 return createDoubleArrayData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
96 }
2468
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
97 else if (type.equals(LongRangeData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
98 return createLongRangeData(element, name, label);
2468
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
99 }
7824
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
100 else if (type.equals(MultiAttributeData.TYPE)) {
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
101 return createMultiAttributeData(element, name, label);
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
102 }
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
103 else {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
104 return createDefaultData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
105 }
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 }
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
107 catch (Exception e) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8071
diff changeset
108 log.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
109 }
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
110
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
111 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
112 }
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114
7824
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
115 public static Data createMultiAttributeData(
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
116 Element element,
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
117 String name,
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
118 String label) {
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
119 return new MultiAttributeData(
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
120 name,
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
121 label,
8071
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
122 extractMultiDataItems(element),
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
123 extractMeta(element));
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
124 }
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
125
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
126
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
127 private static Map<String, Map<String, String>> extractMeta(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
128 Element element
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
129 ) {
8071
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
130 NodeList nl = element.getElementsByTagName("meta");
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
131 int N = nl.getLength();
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
132 if (N < 1) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8071
diff changeset
133 log.debug("No meta data found for multi attribute data");
8071
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
134 return Collections.<String, Map<String, String>>emptyMap();
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
135 }
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
136 Map<String, Map<String, String>> map =
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
137 new HashMap<String, Map<String, String>>();
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
138
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
139 for (int i = 0; i < N; ++i) {
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
140 Element e = (Element)nl.item(i);
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
141 NamedNodeMap attrs = e.getAttributes();
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
142 Map<String, String> kvs = new HashMap<String, String>();
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
143 for (int j = 0, A = attrs.getLength(); j < A; ++j) {
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
144 Attr attr = (Attr)attrs.item(j);
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
145 kvs.put(attr.getName(), attr.getValue());
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
146 }
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
147 map.put(e.getTagName(), kvs);
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
148 }
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
149
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
150 return map;
7824
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
151 }
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
152
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
153
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
154 protected static DataItem[] extractMultiDataItems(Element element) {
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
155 NodeList itemList = (NodeList) XMLUtils.xpath(
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
156 element,
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
157 "art:item",
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
158 XPathConstants.NODESET,
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
159 ArtifactNamespaceContext.INSTANCE);
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
160
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
161 if (itemList == null || itemList.getLength() == 0) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8071
diff changeset
162 log.debug("No old data items found.");
7824
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
163 return null;
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
164 }
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
165
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
166 int count = itemList.getLength();
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
167
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
168 MultiDataItem[] items = new MultiDataItem[count];
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
169
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
170 for (int i = 0; i < count; i++) {
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
171 Element tmp = (Element) itemList.item(i);
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
172
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
173 HashMap<String, String> data = new HashMap<String, String>();
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
174 String label = tmp.getAttributeNS(NS_URI, "label");
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
175 NamedNodeMap attributes = tmp.getAttributes();
8071
6e6506ec0ae0 Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7824
diff changeset
176 for (int j = 0, L = attributes.getLength(); j < L; j++) {
7824
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
177 Node n = attributes.item(j);
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
178 if (n.getNodeName().equals("label")) {
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
179 continue;
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
180 }
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
181 data.put(n.getNodeName(), n.getNodeValue());
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
182 }
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
183 items[i] = new MultiDataItem(label, label, data);
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
184 }
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
185 return items;
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
186 }
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
187
2c221acebb76 New method to extract multi attribute data.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
188
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
189 /**
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
190 * 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
191 * set.
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
192 *
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
193 * @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
194 * @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
195 *
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
196 * @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
197 */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
198 protected static Data createDefaultData(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
199 Element ele,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
200 String name,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
201 String label
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
202 ) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8071
diff changeset
203 log.debug("Create new DefaultData");
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
204 return new DefaultData(name, label, "default", extractDataItems(ele));
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
205 }
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
206
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
207
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
208 /**
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
209 * 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
210 * "string" set.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
211 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
212 * @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
213 * @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
214 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
215 * @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
216 */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
217 protected static Data createStringData(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
218 Element ele,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
219 String name,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
220 String label
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
221 ) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
222 return new StringData(name, label, extractDataItems(ele));
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
223 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
224
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 * 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
228 * "integer" set.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
229 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
230 * @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
231 * @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
232 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
233 * @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
234 */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
235 protected static Data createIntegerData(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
236 Element ele,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
237 String name,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
238 String label
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
239 ) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
240 return new IntegerData(name, label, extractDataItems(ele));
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
241 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
242
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
243
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
244 /**
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
245 * This method creates a new instance of StringOptionsData which has a type
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
246 * "options" set.
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
247 *
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
248 * @param ele The Data element.
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
249 * @param name The name of the Data instance.
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
250 *
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
251 * @return an instance of StringOptionsData.
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
252 */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
253 protected static Data createStringOptionsData(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
254 Element ele,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
255 String name,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
256 String label
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
257 ) {
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
258 return new StringOptionsData(name, label, extractDataItems(ele));
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
259 }
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
260
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
261
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
262 /**
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
263 * 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
264 * "intoptions" set.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
265 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
266 * @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
267 * @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
268 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
269 * @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
270 */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
271 protected static Data createIntegerOptionsData(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
272 Element ele,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
273 String name,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
274 String label
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
275 ) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
276 return new IntegerOptionsData(name, label, extractDataItems(ele));
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
277 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
278
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
279
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
280 /**
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
281 * 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
282 * "intrange" set.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
283 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
284 * @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
285 * @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
286 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
287 * @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
288 */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
289 protected static Data createIntegerRangeData(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
290 Element ele,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
291 String name,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
292 String label
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
293 ) {
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
294 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
295 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
296
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
297 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
298
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
299 return new IntegerRangeData(
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
300 name,
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
301 label,
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
302 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
303 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
304 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
305
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
306
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
307 /**
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
308 * 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
309 * "integerarray" set.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
310 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
311 * @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
312 * @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
313 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
314 * @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
315 */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
316 protected static Data createIntegerArrayData(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
317 Element ele,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
318 String name,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
319 String label
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
320 ) {
2535
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
321 IntDataItem[] items = extractIntDataItems(ele);
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
322 return new IntegerArrayData(name, label, items);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
323 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
324
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
325
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
326 /**
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
327 * 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
328 * "doublearray" set.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
329 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
330 * @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
331 * @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
332 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
333 * @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
334 */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
335 protected static Data createDoubleArrayData(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
336 Element ele,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
337 String name,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
338 String label
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
339 ) {
1595
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
340 DataItem[] items = extractDataItems(ele);
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
341 String rawValue = items[0].getStringValue();
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
342
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
343 String[] values = rawValue.split(";");
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
344 double[] doubles = new double[values.length];
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
345
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
346 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
347 try {
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
348 doubles[i] = Double.valueOf(values[i]);
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
349 }
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
350 catch (NumberFormatException nfe) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8071
diff changeset
351 log.warn("Error while parsing DoubleArrayData: " + nfe);
1595
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
352 }
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
353 }
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
354
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
355 return new DoubleArrayData(name, label, doubles);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
356 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
357
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
358
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
359 /**
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
360 * 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
361 *
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
362 * @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
363 *
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
364 * @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
365 */
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
366 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
367 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
368 element,
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
369 "art:item",
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
370 XPathConstants.NODESET,
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
371 ArtifactNamespaceContext.INSTANCE);
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
372
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
373 if (itemList == null || itemList.getLength() == 0) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8071
diff changeset
374 log.debug("No data items found.");
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
375 return null;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
376 }
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
377
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
378 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
379
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
380 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
381
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8071
diff changeset
382 log.debug("There are " + count + " data items in element.");
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
383
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
384 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
385 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
386
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
387 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
388 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
389
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8071
diff changeset
390 log.debug("Found data item:");
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8071
diff changeset
391 log.debug(" label: " + label);
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8071
diff changeset
392 log.debug(" value: " + value);
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
393
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
394 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
395 }
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
396
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
397 return items;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
398 }
2468
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
399
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
400
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
401 /**
2535
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
402 * This method extracts the art:item elements placed under <i>elements</i>.
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
403 *
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
404 * @param element A data node that contains items.
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
405 *
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
406 * @return a list of DataItems.
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
407 */
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
408 protected static IntDataItem[] extractIntDataItems(Element element) {
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
409 NodeList itemList = (NodeList) XMLUtils.xpath(
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
410 element,
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
411 "art:item",
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
412 XPathConstants.NODESET,
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
413 ArtifactNamespaceContext.INSTANCE);
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
414
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
415 if (itemList == null || itemList.getLength() == 0) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8071
diff changeset
416 log.debug("No old data items found.");
2535
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
417 return null;
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
418 }
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
419
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
420 int count = itemList.getLength();
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
421
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
422 IntDataItem[] items = new IntDataItem[count];
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
423
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
424 for (int i = 0; i < count; i++) {
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
425 Element tmp = (Element) itemList.item(i);
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
426
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
427 String value = tmp.getAttributeNS(NS_URI, "value");
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
428 String label = tmp.getAttributeNS(NS_URI, "label");
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
429
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
430 try {
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
431 int data = Integer.parseInt(value);
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
432 items[i] = new IntDataItem(label, label, data);
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
433 }
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
434 catch(NumberFormatException nfe) {
8203
238fc722f87a sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8071
diff changeset
435 log.debug(nfe, nfe);
2535
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
436 }
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
437 }
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
438 return items;
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
439 }
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
440
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
441 /**
2468
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
442 * 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
443 * "longrange" set.
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
444 *
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
445 * @param ele The Data element.
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
446 * @param name The name of the Data instance.
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
447 *
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
448 * @return an instance of IntegerRangeData.
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
449 */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
450 protected static Data createLongRangeData(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
451 Element ele,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
452 String name,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
453 String label
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8203
diff changeset
454 ) {
2468
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
455 DataItem[] items = extractDataItems(ele);
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
456 String rawValue = items[0].getStringValue();
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
457
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
458 String[] minmax = rawValue.split(";");
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
459
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
460 return new LongRangeData(
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
461 name,
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
462 label,
2468
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
463 Long.valueOf(minmax[0]),
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
464 Long.valueOf(minmax[1]));
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
465 }
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
466
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
467 }
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
468 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org