Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java @ 4488:5041105d2edd
Check if response code from GGInA is 200 OK
Only parse the GGInA response if the status code is 200 OK. This improves the
error message if GGInA is not available and shows the real reason instead of a
JDOM error while parsing the response.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Wed, 14 Nov 2012 10:36:21 +0100 |
parents | f6c73ee1b7f1 |
children |
rev | line source |
---|---|
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.client.server; |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
3 import java.util.ArrayList; |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
4 import java.util.List; |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
5 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 import javax.xml.xpath.XPathConstants; |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 import org.w3c.dom.Document; |
803
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
9 import org.w3c.dom.Element; |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 import org.w3c.dom.Node; |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import org.w3c.dom.NodeList; |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
13 import org.apache.log4j.Logger; |
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
14 |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import de.intevation.artifacts.common.ArtifactNamespaceContext; |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 import de.intevation.artifacts.common.utils.ClientProtocolUtils; |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 import de.intevation.artifacts.common.utils.XMLUtils; |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 import de.intevation.flys.client.shared.model.ArtifactDescription; |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 import de.intevation.flys.client.shared.model.DataItem; |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
21 import de.intevation.flys.client.shared.model.DataList; |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
22 import de.intevation.flys.client.shared.model.DefaultArtifactDescription; |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 import de.intevation.flys.client.shared.model.DefaultData; |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
24 import de.intevation.flys.client.shared.model.DefaultDataItem; |
65
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
25 import de.intevation.flys.client.shared.model.DefaultOutputMode; |
1595
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1593
diff
changeset
|
26 import de.intevation.flys.client.shared.model.DoubleArrayData; |
1593
ff9d71469b7c
Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1592
diff
changeset
|
27 import de.intevation.flys.client.shared.model.DoubleRangeData; |
1527
252c22237fe7
Added new Data classes for integer array and integer options.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1522
diff
changeset
|
28 import de.intevation.flys.client.shared.model.IntegerArrayData; |
1522
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
29 import de.intevation.flys.client.shared.model.IntegerRangeData; |
1527
252c22237fe7
Added new Data classes for integer array and integer options.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1522
diff
changeset
|
30 import de.intevation.flys.client.shared.model.IntegerOptionsData; |
4132
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
31 import de.intevation.flys.client.shared.model.LongRangeData; |
65
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
32 import de.intevation.flys.client.shared.model.OutputMode; |
807
6f65e70fa11d
Repaired broken recommendation parsing from Artifact's DESCRIBE document (which structure has changed).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
803
diff
changeset
|
33 import de.intevation.flys.client.shared.model.Recommendation; |
565
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
34 import de.intevation.flys.client.shared.model.WQDataItem; |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 /** |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 * This factory class helps creating an {@link ArtifactDescription} based on the |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 * DESCRIBE document of an artifact returned by the artifact server. Use the |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 * {@link createArtifactDescription(org.w3c.dom.Document)} method with the |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 * DESCRIBE document to create such an {@link ArtifactDescription}. |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 * |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 */ |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 public class ArtifactDescriptionFactory { |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
47 private static final Logger logger = |
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
48 Logger.getLogger(ArtifactDescriptionFactory.class); |
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
49 |
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
50 |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 public static final String XPATH_STATE_NAME = "@art:name"; |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 |
22
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
53 public static final String XPATH_UIPROVIDER = "@art:uiprovider"; |
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
54 |
2500
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
55 public static final String XPATH_HELP_TEXT = "@art:helpText"; |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
56 |
32
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
57 public static final String XPATH_REACHABLE_STATE = "art:state"; |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
58 |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
59 public static final String XPATH_STATIC_STATE_NODE = "art:state"; |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
60 |
34
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
61 public static final String XPATH_STATIC_DATA_NODE = "art:data"; |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
62 |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
63 public static final String XPATH_STATIC_ITEM_NODE = "art:item"; |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
64 |
803
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
65 public static final String XPATH_RECOMMENDED_ARTIFACTS = |
808
3187b268b311
Repaired broken XPath expression.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
807
diff
changeset
|
66 "/art:result/art:recommended-artifacts//*[@factory]"; |
803
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
67 |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 /** |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 * This method creates the {@link ArtifactDescription} of the DESCRIBE |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 * document <i>doc</i>. |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
71 * |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 * @param doc A DESCRIBE document. |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 * |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 * @return the {@link ArtifactDescription}. |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 */ |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 public static ArtifactDescription createArtifactDescription(Document doc) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
77 logger.debug("ArtifactDescriptionFactory.createArtifactDescription"); |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 Node currentState = ClientProtocolUtils.getCurrentState(doc); |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 Node staticNode = ClientProtocolUtils.getStaticUI(doc); |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 Node dynamicNode = ClientProtocolUtils.getDynamicUI(doc); |
32
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
82 Node reachable = ClientProtocolUtils.getReachableStates(doc); |
65
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
83 NodeList outputs = ClientProtocolUtils.getOutputModes(doc); |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 String state = (String) XMLUtils.xpath( |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
86 currentState, |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 XPATH_STATE_NAME, |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 XPathConstants.STRING, |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
89 ArtifactNamespaceContext.INSTANCE); |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
90 |
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
91 logger.debug("Current state name: " + state); |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
92 |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
93 DataList currentData = extractCurrentData(dynamicNode, state); |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
94 DataList[] old = extractOldData(staticNode); |
34
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
95 String[] states = extractReachableStates(reachable); |
803
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
96 OutputMode[] outs = extractOutputModes(outputs); |
807
6f65e70fa11d
Repaired broken recommendation parsing from Artifact's DESCRIBE document (which structure has changed).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
803
diff
changeset
|
97 Recommendation[] rec = extractRecommendedArtifacts(doc); |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
98 |
65
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
99 return new DefaultArtifactDescription( |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
100 old, |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
101 currentData, |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
102 state, |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
103 states, |
803
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
104 outs, |
807
6f65e70fa11d
Repaired broken recommendation parsing from Artifact's DESCRIBE document (which structure has changed).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
803
diff
changeset
|
105 rec); |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
106 } |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
107 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
108 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
109 /** |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
110 * This method extracts the data that the user is able to enter in the |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
111 * current state of the artifact. |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
112 * |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
113 * @param dynamicNode The dynamic node of the DESCRIBE document. |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
114 * @param state The name of the current state. |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
115 * |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
116 * @return A {@link Data} object that represents the data which might be |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
117 * entered by the user in the current state or null, if no data might be |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
118 * entered. |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
119 */ |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
120 protected static DataList extractCurrentData(Node dynamicNode, String state) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
121 logger.debug("ArtifactDescriptionFactory.extractCurrentData"); |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
122 |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
123 NodeList data = ClientProtocolUtils.getSelectNode(dynamicNode); |
2500
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
124 String help = extractHelpText(dynamicNode); |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
125 String uiProvider = extractUIProvider(dynamicNode); |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
126 |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
127 if (data == null || data.getLength() == 0) { |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
128 return null; |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
129 } |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
130 |
1522
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
131 int dataNum = data.getLength(); |
2500
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
132 DataList list = new DataList(state, dataNum, uiProvider, null, help); |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
133 |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
134 for (int i = 0; i < dataNum; i++) { |
1522
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
135 Element d = (Element) data.item(i); |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
136 String label = ClientProtocolUtils.getLabel(d); |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
137 String name = XMLUtils.xpathString( |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
138 d, "@art:name", ArtifactNamespaceContext.INSTANCE); |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
139 String type = XMLUtils.xpathString( |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
140 d, "@art:type", ArtifactNamespaceContext.INSTANCE); |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
141 |
1522
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
142 logger.debug("Create new IntegerRangeData object for: " + name); |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
143 logger.debug("New Data is from type: " + type); |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
144 |
1592
f34bbb5fb6d2
Added TODO and handle dynamic data of unknown type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1571
diff
changeset
|
145 // TODO replace with DataFactory. |
f34bbb5fb6d2
Added TODO and handle dynamic data of unknown type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1571
diff
changeset
|
146 |
1522
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
147 if (type == null || type.length() == 0) { |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
148 NodeList choices = ClientProtocolUtils.getItemNodes(d); |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
149 DataItem[] dataItems = extractCurrentDataItems(choices); |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
150 DataItem def = extractDefaultDataItem(d); |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
151 |
1522
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
152 list.add(new DefaultData(name, label, null, dataItems, def)); |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
153 } |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
154 else if (type.equals("intrange")) { |
1566
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
155 String min = ClientProtocolUtils.getMinNode(d); |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
156 String max = ClientProtocolUtils.getMaxNode(d); |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
157 |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
158 String defMin = ClientProtocolUtils.getDefMin(d); |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
159 String defMax = ClientProtocolUtils.getDefMax(d); |
1522
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
160 |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
161 try { |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
162 int lower = Integer.parseInt(min); |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
163 int upper = Integer.parseInt(max); |
1566
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
164 |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
165 if (defMin != null && defMax != null) { |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
166 list.add(new IntegerRangeData( |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
167 name, label, |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
168 lower, upper, |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
169 Integer.parseInt(defMin), |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
170 Integer.parseInt(defMax))); |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
171 } |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
172 else { |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
173 list.add( |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
174 new IntegerRangeData(name, label, lower, upper)); |
c408074c6409
Initialize the min and max fields in RangePanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1527
diff
changeset
|
175 } |
1522
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
176 } |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
177 catch (NumberFormatException nfe) { |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
178 logger.warn("NumberFormatException: ", nfe); |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
179 } |
df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1367
diff
changeset
|
180 } |
4132
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
181 else if (type.equals("longrange")) { |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
182 String min = ClientProtocolUtils.getMinNode(d); |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
183 String max = ClientProtocolUtils.getMaxNode(d); |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
184 |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
185 String defMin = ClientProtocolUtils.getDefMin(d); |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
186 String defMax = ClientProtocolUtils.getDefMax(d); |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
187 |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
188 try { |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
189 long lower = Long.valueOf(min); |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
190 long upper = Long.valueOf(max); |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
191 |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
192 if (defMin != null && defMax != null) { |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
193 list.add(new LongRangeData( |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
194 name, label, |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
195 lower, upper, |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
196 Long.valueOf(defMin), |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
197 Long.valueOf(defMax))); |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
198 } |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
199 } |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
200 catch (NumberFormatException nfe) { |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
201 logger.warn("NumberFormatException: ", nfe); |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
202 } |
f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3379
diff
changeset
|
203 } |
1527
252c22237fe7
Added new Data classes for integer array and integer options.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1522
diff
changeset
|
204 else if (type.equals("intarray")) { |
252c22237fe7
Added new Data classes for integer array and integer options.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1522
diff
changeset
|
205 list.add(new IntegerArrayData(name, label, null)); |
252c22237fe7
Added new Data classes for integer array and integer options.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1522
diff
changeset
|
206 } |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2500
diff
changeset
|
207 else if (type.equals("intoptions") && uiProvider.equals("parameter-matrix")) { |
2532
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
208 list.add(DataFactory.createIntegerOptionsData(d, name, label)); |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
209 } |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
210 else if (type.equals("options")) { |
261347ea60b8
Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2521
diff
changeset
|
211 list.add(DataFactory.createStringOptionsData(d, name, label)); |
2521
fe177e7f61d1
Added a new UIProvider that renders a matrix of checkboxes for user input.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2500
diff
changeset
|
212 } |
1527
252c22237fe7
Added new Data classes for integer array and integer options.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1522
diff
changeset
|
213 else if (type.equals("intoptions")) { |
252c22237fe7
Added new Data classes for integer array and integer options.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1522
diff
changeset
|
214 NodeList choices = ClientProtocolUtils.getItemNodes(d); |
252c22237fe7
Added new Data classes for integer array and integer options.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1522
diff
changeset
|
215 DataItem[] opts = extractCurrentDataItems(choices); |
252c22237fe7
Added new Data classes for integer array and integer options.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1522
diff
changeset
|
216 |
252c22237fe7
Added new Data classes for integer array and integer options.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1522
diff
changeset
|
217 list.add(new IntegerOptionsData(name, label, opts)); |
252c22237fe7
Added new Data classes for integer array and integer options.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1522
diff
changeset
|
218 } |
1595
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1593
diff
changeset
|
219 else if (type.equals("doublearray")) { |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1593
diff
changeset
|
220 list.add(new DoubleArrayData(name, label, null)); |
e53d773e6992
Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1593
diff
changeset
|
221 } |
1592
f34bbb5fb6d2
Added TODO and handle dynamic data of unknown type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1571
diff
changeset
|
222 else { |
f34bbb5fb6d2
Added TODO and handle dynamic data of unknown type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1571
diff
changeset
|
223 logger.warn("Unrecognized Dynamic data type."); |
f34bbb5fb6d2
Added TODO and handle dynamic data of unknown type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1571
diff
changeset
|
224 NodeList choices = ClientProtocolUtils.getItemNodes(d); |
f34bbb5fb6d2
Added TODO and handle dynamic data of unknown type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1571
diff
changeset
|
225 DataItem[] dataItems = extractCurrentDataItems(choices); |
f34bbb5fb6d2
Added TODO and handle dynamic data of unknown type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1571
diff
changeset
|
226 DataItem def = extractDefaultDataItem(d); |
f34bbb5fb6d2
Added TODO and handle dynamic data of unknown type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1571
diff
changeset
|
227 |
1593
ff9d71469b7c
Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1592
diff
changeset
|
228 String min = ClientProtocolUtils.getMinNode(d); |
ff9d71469b7c
Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1592
diff
changeset
|
229 String max = ClientProtocolUtils.getMaxNode(d); |
ff9d71469b7c
Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1592
diff
changeset
|
230 if (min != null && max != null) { |
ff9d71469b7c
Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1592
diff
changeset
|
231 list.add(new DoubleRangeData( |
ff9d71469b7c
Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1592
diff
changeset
|
232 name, label, |
ff9d71469b7c
Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1592
diff
changeset
|
233 Double.valueOf(min), Double.valueOf(max), |
ff9d71469b7c
Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1592
diff
changeset
|
234 Double.valueOf(min), Double.valueOf(max))); |
ff9d71469b7c
Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1592
diff
changeset
|
235 } |
ff9d71469b7c
Adjusted to be able to feed data to reference curves.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1592
diff
changeset
|
236 |
1592
f34bbb5fb6d2
Added TODO and handle dynamic data of unknown type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1571
diff
changeset
|
237 list.add(new DefaultData(name, label, null, dataItems, def)); |
f34bbb5fb6d2
Added TODO and handle dynamic data of unknown type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1571
diff
changeset
|
238 } |
f34bbb5fb6d2
Added TODO and handle dynamic data of unknown type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1571
diff
changeset
|
239 |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
240 } |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
241 |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
242 return list; |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
243 } |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
244 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
245 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
246 /** |
515
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
247 * This method extracts the default value of a Data object. |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
248 * |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
249 * @param data The data object node. |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
250 * |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
251 * @return the default DataItem. |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
252 */ |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
253 protected static DataItem extractDefaultDataItem(Node data) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
254 logger.debug("ArtifactDescriptionFactory.extractDefaultDataItem"); |
515
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
255 |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
256 String value = XMLUtils.xpathString( |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
257 data, "@art:defaultValue", ArtifactNamespaceContext.INSTANCE); |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
258 |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
259 String label = XMLUtils.xpathString( |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
260 data, "@art:defaultLabel", ArtifactNamespaceContext.INSTANCE); |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
261 |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
262 if (value != null && label != null) { |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
263 return new DefaultDataItem(label, null, value); |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
264 } |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
265 |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
266 return null; |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
267 } |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
268 |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
269 |
27ffaf628b54
The default values/labels for Data objects are read from DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
65
diff
changeset
|
270 /** |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
271 * This method extract the {@link DataItem}s of the DESCRIBE document. |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
272 * |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
273 * @param items The items in the DESCRIBE document. |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
274 * |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
275 * @return the {@link DataItem}s. |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
276 */ |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
277 protected static DataItem[] extractCurrentDataItems(NodeList items) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
278 logger.debug("ArtifactDescriptionFactory.extractCurrentDataItems"); |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
279 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
280 if (items == null || items.getLength() == 0) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
281 logger.debug("No data items found."); |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
282 return null; |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
283 } |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
284 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
285 int count = items.getLength(); |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
286 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
287 List<DataItem> dataItems = new ArrayList<DataItem>(count); |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
288 |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
289 for (int i = 0; i < count; i++) { |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
290 Node item = items.item(i); |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
291 String label = ClientProtocolUtils.getLabel(item); |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
292 String value = ClientProtocolUtils.getValue(item); |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
293 |
565
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
294 double[] mmQ = extractMinMaxQValues(item); |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
295 double[] mmW = extractMinMaxWValues(item); |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
296 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
297 if (mmQ != null || mmW != null) { |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
298 dataItems.add(new WQDataItem(label, null, value, mmQ, mmW)); |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
299 } |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
300 else { |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
301 dataItems.add(new DefaultDataItem(label, null, value)); |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
302 } |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
303 } |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
304 |
3379
0de61fc9d281
Removed some superfluous casts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2532
diff
changeset
|
305 return dataItems.toArray(new DataItem[count]); |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
306 } |
22
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
307 |
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
308 |
565
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
309 protected static double[] extractMinMaxQValues(Node item) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
310 logger.debug("ArtifactDescriptionFactory.extractMinMaxQValues"); |
565
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
311 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
312 if (item == null) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
313 logger.debug("This node is empty - no min/max Q values."); |
565
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
314 return null; |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
315 } |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
316 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
317 Node node = (Node) XMLUtils.xpath( |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
318 item, |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
319 "art:range[@art:type='Q']", |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
320 XPathConstants.NODE, |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
321 ArtifactNamespaceContext.INSTANCE); |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
322 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
323 if (node == null) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
324 logger.debug("No min/max Q values found."); |
565
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
325 return null; |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
326 } |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
327 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
328 return extractMinMaxValues(node); |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
329 } |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
330 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
331 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
332 protected static double[] extractMinMaxWValues(Node item) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
333 logger.debug("ArtifactDescriptionFactory.extractMinMaxWValues"); |
565
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
334 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
335 if (item == null) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
336 logger.debug("This node is empty - no min/max W values."); |
565
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
337 return null; |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
338 } |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
339 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
340 Node node = (Node) XMLUtils.xpath( |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
341 item, |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
342 "art:range[@art:type='W']", |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
343 XPathConstants.NODE, |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
344 ArtifactNamespaceContext.INSTANCE); |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
345 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
346 if (node == null) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
347 logger.debug("No min/max W values found."); |
565
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
348 return null; |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
349 } |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
350 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
351 return extractMinMaxValues(node); |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
352 } |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
353 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
354 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
355 protected static double[] extractMinMaxValues(Node node) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
356 logger.debug("ArtifactDescriptionFactory.extractMinMaxValues"); |
565
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
357 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
358 String minStr = XMLUtils.xpathString( |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
359 node, "art:min/text()", ArtifactNamespaceContext.INSTANCE); |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
360 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
361 String maxStr = XMLUtils.xpathString( |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
362 node, "art:max/text()", ArtifactNamespaceContext.INSTANCE); |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
363 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
364 if (maxStr == null || minStr == null) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
365 logger.debug("No min/max values found."); |
565
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
366 return null; |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
367 } |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
368 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
369 try { |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
370 double min = Double.valueOf(minStr); |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
371 double max = Double.valueOf(maxStr); |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
372 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
373 return new double[] { min, max }; |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
374 } |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
375 catch (NumberFormatException nfe) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
376 logger.debug("Error while parsing min/max values."); |
565
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
377 } |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
378 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
379 return null; |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
380 } |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
381 |
a078ba1c139d
Introduced a client side input validation for the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
515
diff
changeset
|
382 |
22
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
383 /** |
34
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
384 * This method extracts the data objects from the data node of the static ui |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
385 * part of the DESCRIBE document. |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
386 * |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
387 * @param staticNode The static ui node of the DESCRIBE. |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
388 * |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
389 * @return the DataList objects. |
34
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
390 */ |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
391 protected static DataList[] extractOldData(Node staticNode) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
392 logger.debug("ArtifactDescriptionFactory.extractOldData()"); |
34
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
393 |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
394 NodeList stateNodes = (NodeList) XMLUtils.xpath( |
34
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
395 staticNode, |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
396 XPATH_STATIC_STATE_NODE, |
34
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
397 XPathConstants.NODESET, |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
398 ArtifactNamespaceContext.INSTANCE); |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
399 |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
400 if (stateNodes == null || stateNodes.getLength() == 0) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
401 logger.debug("No old items found."); |
34
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
402 return null; |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
403 } |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
404 |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
405 int count = stateNodes.getLength(); |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
406 DataList[] data = new DataList[count]; |
34
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
407 |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
408 for (int i = 0; i < count; i++) { |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
409 Node tmp = stateNodes.item(i); |
34
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
410 |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
411 String name = XMLUtils.xpathString( |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
412 tmp, "@art:name", ArtifactNamespaceContext.INSTANCE); |
52
1d0be51ab93b
The DataList has a label now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
51
diff
changeset
|
413 String uiprovider = XMLUtils.xpathString( |
1d0be51ab93b
The DataList has a label now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
51
diff
changeset
|
414 tmp, "@art:uiprovider", ArtifactNamespaceContext.INSTANCE); |
1d0be51ab93b
The DataList has a label now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
51
diff
changeset
|
415 String label = XMLUtils.xpathString( |
1d0be51ab93b
The DataList has a label now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
51
diff
changeset
|
416 tmp, "@art:label", ArtifactNamespaceContext.INSTANCE); |
2500
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
417 String help = XMLUtils.xpathString( |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
418 tmp, "@art:helpText", ArtifactNamespaceContext.INSTANCE); |
34
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
419 |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
420 NodeList dataNodes = (NodeList) XMLUtils.xpath( |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
421 tmp, |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
422 XPATH_STATIC_DATA_NODE, |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
423 XPathConstants.NODESET, |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
424 ArtifactNamespaceContext.INSTANCE); |
34
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
425 |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
426 if (dataNodes == null || dataNodes.getLength() == 0) { |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
427 continue; |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
428 } |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
429 |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
430 int size = dataNodes.getLength(); |
2500
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
431 DataList list = new DataList(name, size, uiprovider, label, help); |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
432 |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
433 for (int j = 0; j < size; j++) { |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
434 Node dataNode = dataNodes.item(j); |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
435 |
1571
1227878665b5
Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1566
diff
changeset
|
436 list.add(DataFactory.createDataFromElement((Element) dataNode)); |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
437 |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
438 data[i] = list; |
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
439 } |
34
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
440 } |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
441 |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
442 return data; |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
443 } |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
444 |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
445 |
bf84bcd4e11b
Parse static data from DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
32
diff
changeset
|
446 /** |
22
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
447 * This method extracts the UIProvider specified by the data node. |
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
448 * |
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
449 * @param data The data node. |
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
450 * |
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
451 * @return the UIProvider that is specified in the data node. |
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
452 */ |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
453 protected static String extractUIProvider(Node ui) { |
22
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
454 return (String) XMLUtils.xpath( |
51
a2923d63f530
Introduced a data structure DataList to manage to list of Data objects of a single state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
37
diff
changeset
|
455 ui, |
22
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
456 XPATH_UIPROVIDER, |
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
457 XPathConstants.STRING, |
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
458 ArtifactNamespaceContext.INSTANCE); |
a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
16
diff
changeset
|
459 } |
32
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
460 |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
461 |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
462 /** |
2500
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
463 * This method extracts the help text specified by the data node. |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
464 * |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
465 * @param ui The data node. |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
466 * |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
467 * @return the help text. |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
468 */ |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
469 protected static String extractHelpText(Node ui) { |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
470 return (String) XMLUtils.xpath( |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
471 ui, |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
472 XPATH_HELP_TEXT, |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
473 XPathConstants.STRING, |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
474 ArtifactNamespaceContext.INSTANCE); |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
475 } |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
476 |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
477 |
69a498896c9c
Create a link to an online help page and put it in front of the input panels.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1595
diff
changeset
|
478 /** |
32
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
479 * This method extracts the reachable states of the current artifact. |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
480 * |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
481 * @param reachable The reachable states node. |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
482 * |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
483 * @return an array with identifiers of reachable states. |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
484 */ |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
485 protected static String[] extractReachableStates(Node reachable) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
486 logger.debug("ArtifactDescriptionFactory.extractReachableStates()"); |
32
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
487 |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
488 NodeList list = (NodeList) XMLUtils.xpath( |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
489 reachable, |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
490 XPATH_REACHABLE_STATE, |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
491 XPathConstants.NODESET, |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
492 ArtifactNamespaceContext.INSTANCE); |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
493 |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
494 if (list == null || list.getLength() == 0) { |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
495 return null; |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
496 } |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
497 |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
498 int count = list.getLength(); |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
499 |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
500 String[] states = new String[count]; |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
501 |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
502 for (int i = 0; i < count; i++) { |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
503 Node state = list.item(i); |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
504 |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
505 String name = XMLUtils.xpathString( |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
506 state, "@art:name", ArtifactNamespaceContext.INSTANCE); |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
507 |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
508 states[i] = name; |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
509 } |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
510 |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
511 return states; |
88c530c25968
Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
22
diff
changeset
|
512 } |
65
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
513 |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
514 |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
515 /** |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
516 * This method extract available output modes of the the current artifact. |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
517 * |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
518 * @param outputs A list of nodes that contain information about output |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
519 * modes. |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
520 * |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
521 * @return an array of Output modes. |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
522 */ |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
523 protected static OutputMode[] extractOutputModes(NodeList outputs) { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
524 logger.debug("ArtifactDescriptionFactory.extractOutputModes"); |
65
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
525 |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
526 if (outputs == null || outputs.getLength() == 0) { |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
527 return null; |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
528 } |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
529 |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
530 int size = outputs.getLength(); |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
531 |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
532 List<OutputMode> outs = new ArrayList<OutputMode>(size); |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
533 |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
534 for (int i = 0; i < size; i++) { |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
535 Node out = outputs.item(i); |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
536 |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
537 String name = XMLUtils.xpathString( |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
538 out, "@art:name", ArtifactNamespaceContext.INSTANCE); |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
539 String desc = XMLUtils.xpathString( |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
540 out, "@art:description", ArtifactNamespaceContext.INSTANCE); |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
541 String mimeType = XMLUtils.xpathString( |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
542 out, "@art:mime-type", ArtifactNamespaceContext.INSTANCE); |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
543 |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
544 if (name != null) { |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
545 outs.add(new DefaultOutputMode(name, desc, mimeType)); |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
546 } |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
547 else { |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
548 logger.debug("Found an invalid output mode."); |
65
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
549 } |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
550 } |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
551 |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
552 return (OutputMode[]) outs.toArray(new OutputMode[size]); |
8f719fa1a691
The output modes of an artifact are extracted from DESCRIBE document and put into the ArtifactDescription.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
61
diff
changeset
|
553 } |
803
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
554 |
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
555 |
807
6f65e70fa11d
Repaired broken recommendation parsing from Artifact's DESCRIBE document (which structure has changed).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
803
diff
changeset
|
556 protected static Recommendation[] extractRecommendedArtifacts(Document doc){ |
1367
ab8eb2f544f2
Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
839
diff
changeset
|
557 logger.debug("ArtifactDescriptionFactory.extractRecommendedArtifacts."); |
803
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
558 |
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
559 NodeList list = (NodeList) XMLUtils.xpath( |
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
560 doc, |
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
561 XPATH_RECOMMENDED_ARTIFACTS, |
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
562 XPathConstants.NODESET, |
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
563 ArtifactNamespaceContext.INSTANCE); |
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
564 |
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
565 int num = list != null ? list.getLength() : 0; |
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
566 |
807
6f65e70fa11d
Repaired broken recommendation parsing from Artifact's DESCRIBE document (which structure has changed).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
803
diff
changeset
|
567 Recommendation[] rec = new Recommendation[num]; |
803
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
568 |
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
569 for (int i = 0; i < num; i++) { |
807
6f65e70fa11d
Repaired broken recommendation parsing from Artifact's DESCRIBE document (which structure has changed).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
803
diff
changeset
|
570 Element e = (Element) list.item(i); |
6f65e70fa11d
Repaired broken recommendation parsing from Artifact's DESCRIBE document (which structure has changed).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
803
diff
changeset
|
571 String factory = e.getAttribute("factory"); |
836
0fe456332785
Datacage: s/db-ids/ids/g to unify system and user specific loading.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
808
diff
changeset
|
572 String index = e.getAttribute("ids"); |
803
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
573 |
807
6f65e70fa11d
Repaired broken recommendation parsing from Artifact's DESCRIBE document (which structure has changed).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
803
diff
changeset
|
574 if (factory != null && factory.length() > 0) { |
839
6a1cd38e6e18
Made Recommendation a class for direct use.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
836
diff
changeset
|
575 rec[i] = new Recommendation(factory, index); |
803
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
576 } |
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
577 } |
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
578 |
807
6f65e70fa11d
Repaired broken recommendation parsing from Artifact's DESCRIBE document (which structure has changed).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
803
diff
changeset
|
579 return rec; |
803
653ae84533e7
Read/create recommended Artifacts and add them to the current Collection.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
565
diff
changeset
|
580 } |
16
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
581 } |
f8a5f2c5e2b7
The DESCRIBE document returned by the artifact server is parsed after calling create() of the artifact service and a new Artifact is created with an ArtifactDescription that contains the UUID, HASH, und the current Data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
582 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |