annotate artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java @ 203:b5e1949bc255

Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation. artifacts/trunk@1448 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 10 Mar 2011 08:26:08 +0000
parents 8ce06db80857
children 5c93fb142970
rev   line source
113
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 /*
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2 * Copyright (c) 2011 by Intevation GmbH
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 *
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4 * This program is free software under the LGPL (>=v2.1)
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 * Read the file LGPL.txt coming with the software for details
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 * or visit http://www.gnu.org/licenses/ if it does not exist.
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 */
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 package de.intevation.artifacts.common.utils;
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9
114
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
10 import javax.xml.xpath.XPathConstants;
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
11
113
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import org.w3c.dom.Document;
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import org.w3c.dom.Element;
114
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
14 import org.w3c.dom.Node;
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
15 import org.w3c.dom.NodeList;
113
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 import de.intevation.artifacts.common.ArtifactNamespaceContext;
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 /**
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 * This class provides methods that help creating the artifact protocol
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 * documents DESCRIBE, FEED, ADVANCE and OUT.
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 *
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 */
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 public class ClientProtocolUtils {
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
114
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
28 /** The XPath to the current state in the DESCRIBE document.*/
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
29 public static final String XPATH_CURRENT_STATE = "/art:result/art:state";
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
30
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
31 /** The XPath to the static UI part in the DESCRIBE document.*/
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
32 public static final String XPATH_STATIC = "/art:result/art:ui/art:static";
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
33
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
34 /** The XPath to the dynamic UI part in the DESCRIBE document.*/
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
35 public static final String XPATH_DYNAMIC = "/art:result/art:ui/art:dynamic";
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
36
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
37 /** The XPath to the reachable states part in the DESCRIBE document.*/
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
38 public static final String XPATH_STATES =
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
39 "/art:result/art:reachable-states";
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
40
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
41 /** The XPath to the select node relative to the dynamic UI node in the
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
42 * DESCRIBE document.*/
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
43 public static final String XPATH_DATA_SELECT = "art:select";
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
44
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
45 /** The XPath to the choices nodes relative to the select node in the
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
46 * DESCRIBE document.*/
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
47 public static final String XPATH_DATA_ITEMS = "art:choices/art:item";
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
48
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
49 /** The XPath to a label in the artifact's DESCRIBE document.*/
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
50 public static final String XPATH_LABEL = "art:label/text()";
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
51
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
52 /** The XPath to a value in the artifact's DESCRIBE document.*/
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
53 public static final String XPATH_VALUE = "art:value/text()";
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
54
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
55
113
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 /**
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 * It should not be necessary to create instances of this class.
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 */
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 private ClientProtocolUtils() {
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 }
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 /**
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 * This method creates a new CREATE document.
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 *
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 * @return the CREATE document.
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 */
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 public static Document newCreateDocument(String factory) {
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 Document doc = XMLUtils.newDocument();
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 XMLUtils.ElementCreator cr = new XMLUtils.ElementCreator(
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 doc,
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 ArtifactNamespaceContext.NAMESPACE_URI,
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 ArtifactNamespaceContext.NAMESPACE_PREFIX);
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 Element action = cr.create("action");
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 Element type = cr.create("type");
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 Element fac = cr.create("factory");
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 type.setAttribute("name", "create");
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 fac.setAttribute("name", factory);
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 action.appendChild(type);
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 action.appendChild(fac);
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 doc.appendChild(action);
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 return doc;
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 }
114
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
90
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
91
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
92 /**
203
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
93 * This method creates a new FEED document.
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
94 *
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
95 * @param theUuid The identifier of the artifact.
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
96 * @param theHash The hash of the artifact.
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
97 * @param theData An array that contains key/value pairs that represent the
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
98 * data that should be included in the FEED document.
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
99 *
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
100 * @return the FEED document.
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
101 */
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
102 public static Document newFeedDocument(
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
103 String theUuid,
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
104 String theHash,
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
105 String[][] theData)
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
106 {
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
107 Document doc = XMLUtils.newDocument();
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
108
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
109 XMLUtils.ElementCreator cr = new XMLUtils.ElementCreator(
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
110 doc,
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
111 ArtifactNamespaceContext.NAMESPACE_URI,
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
112 ArtifactNamespaceContext.NAMESPACE_PREFIX);
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
113
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
114 Element action = cr.create("action");
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
115 Element type = cr.create("type");
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
116 Element uuid = cr.create("uuid");
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
117 Element hash = cr.create("hash");
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
118 Element data = cr.create("data");
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
119
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
120 // XXX It is not nice that the type has no attribute namespace, but to
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
121 // be backward compatible, we don't change this now.
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
122 cr.addAttr(type, "name", "feed", false);
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
123 cr.addAttr(uuid, "value", theUuid, true);
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
124 cr.addAttr(hash, "value", theHash, true);
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
125
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
126 for (String[] kvp: theData) {
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
127 Element input = cr.create("input");
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
128 cr.addAttr(input, "name", kvp[0], true);
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
129 cr.addAttr(input, "value", kvp[1], true);
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
130
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
131 data.appendChild(input);
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
132 }
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
133
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
134 action.appendChild(type);
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
135 action.appendChild(uuid);
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
136 action.appendChild(hash);
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
137 action.appendChild(data);
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
138
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
139 doc.appendChild(action);
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
140
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
141 return doc;
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
142 }
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
143
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
144
b5e1949bc255 Implemented a new method in the ClientProtocolUtils that creates the document for a FEED operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 172
diff changeset
145 /**
172
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
146 * This method creates a new document that is used to create new artifact
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
147 * collections in the artifact server.
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
148 *
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
149 * @param name <b>Optional</b> name of the collection.
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
150 *
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
151 * @return the document to create new collections.
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
152 */
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
153 public static Document newCreateCollectionDocument(String name) {
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
154 Document doc = XMLUtils.newDocument();
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
155
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
156 XMLUtils.ElementCreator cr = new XMLUtils.ElementCreator(
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
157 doc,
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
158 ArtifactNamespaceContext.NAMESPACE_URI,
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
159 ArtifactNamespaceContext.NAMESPACE_PREFIX);
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
160
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
161 Element action = cr.create("action");
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
162 Element type = cr.create("type");
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
163 Element collection = cr.create("artifact-collection");
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
164
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
165 cr.addAttr(type, "name", "create");
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
166 cr.addAttr(collection, "name", name != null ? name : "");
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
167
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
168 action.appendChild(type);
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
169 action.appendChild(collection);
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
170
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
171 doc.appendChild(action);
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
172
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
173 return doc;
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
174 }
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
175
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
176
8ce06db80857 Added a new method to the ProtocolUtils that creates the necessary CREATE document for creating new artifact collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 114
diff changeset
177 /**
114
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
178 * Returns string value found by {@link XPATH_LABEL} relative to
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
179 * <i>node</i>.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
180 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
181 * @param node A node.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
182 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
183 * @return the string value found by {@link XPATH_LABEL}.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
184 */
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
185 public static String getLabel(Node node) {
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
186 return (String) XMLUtils.xpath(
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
187 node,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
188 XPATH_LABEL,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
189 XPathConstants.STRING,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
190 ArtifactNamespaceContext.INSTANCE);
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
191 }
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
192
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
193
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
194 /**
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
195 * Returns string value found by {@link XPATH_VALUE} relative to
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
196 * <i>node</i>.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
197 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
198 * @param node A node.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
199 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
200 * @return the string value found by {@link XPATH_VALUE}.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
201 */
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
202 public static String getValue(Node node) {
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
203 return (String) XMLUtils.xpath(
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
204 node,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
205 XPATH_VALUE,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
206 XPathConstants.STRING,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
207 ArtifactNamespaceContext.INSTANCE);
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
208 }
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
209
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
210
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
211 /**
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
212 * This method returns the static UI part of the artifact's DESCRIBE
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
213 * document.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
214 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
215 * @param description The document returned by the artifact server's
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
216 * DESCRIBE operation.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
217 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
218 * @return the static UI node.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
219 */
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
220 public static Node getStaticUI(Document description) {
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
221 return (Node) XMLUtils.xpath(
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
222 description,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
223 XPATH_STATIC,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
224 XPathConstants.NODE,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
225 ArtifactNamespaceContext.INSTANCE);
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
226 }
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
227
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
228
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
229 /**
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
230 * This method returns the dynamic UI part of the artifact's DESCRIBE
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
231 * document.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
232 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
233 * @param description The document returned by the artifact server's
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
234 * DESCRIBE operation.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
235 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
236 * @return the dynamic UI node.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
237 */
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
238 public static Node getDynamicUI(Document description) {
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
239 return (Node) XMLUtils.xpath(
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
240 description,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
241 XPATH_DYNAMIC,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
242 XPathConstants.NODE,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
243 ArtifactNamespaceContext.INSTANCE);
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
244 }
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
245
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
246
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
247 /**
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
248 * This method returns the current state node contained in the DESCRIBE
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
249 * document.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
250 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
251 * @param description The document returned by the artifact server's
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
252 * DESCRIBE operation.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
253 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
254 * @return the node containing information about the current state.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
255 */
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
256 public static Node getCurrentState(Document description) {
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
257 return (Node) XMLUtils.xpath(
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
258 description,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
259 XPATH_CURRENT_STATE,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
260 XPathConstants.NODE,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
261 ArtifactNamespaceContext.INSTANCE);
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
262 }
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
263
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
264
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
265 /**
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
266 * This method returns the node that contains information about the
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
267 * reachable states of the artifact in the artifact's DESCRIBE document.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
268 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
269 * @param description The document returned by the artifact server's
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
270 * DESCRIBE operation.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
271 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
272 * @return the node that contains the reachable states.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
273 */
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
274 public static Node getReachableStates(Document description) {
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
275 return (Node) XMLUtils.xpath(
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
276 description,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
277 XPATH_STATES,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
278 XPathConstants.NODE,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
279 ArtifactNamespaceContext.INSTANCE);
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
280 }
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
281
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
282
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
283 /**
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
284 * Returns the node found by {@link XPATH_DATA_SELECT}.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
285 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
286 * @param dynamicNode The dynamic UI node of the DESCRIBE document.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
287 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
288 * @return the select node found in the dynamic UI node.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
289 */
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
290 public static Node getSelectNode(Node dynamicNode) {
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
291 return (Node) XMLUtils.xpath(
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
292 dynamicNode,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
293 XPATH_DATA_SELECT,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
294 XPathConstants.NODE,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
295 ArtifactNamespaceContext.INSTANCE);
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
296 }
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
297
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
298
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
299 /**
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
300 * Returns the items that could be found in the <i>node</i>.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
301 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
302 * @param node A select node.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
303 *
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
304 * @return the choices nodes as node list.
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
305 */
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
306 public static NodeList getItemNodes(Node node) {
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
307 return (NodeList) XMLUtils.xpath(
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
308 node,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
309 XPATH_DATA_ITEMS,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
310 XPathConstants.NODESET,
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
311 ArtifactNamespaceContext.INSTANCE);
19b86e27d0c3 New XPath constants and methods that retrieve important nodes of the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 113
diff changeset
312 }
113
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
313 }
0344a20f8a93 Added the ArtifactNamespaceContext and a ClientProtocolUtils that helps working with the artifact protocol.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
314 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org