annotate artifacts/src/main/java/org/dive4elements/artifacts/ArtifactNamespaceContext.java @ 565:8d11d6a17f3b

Mit 3.2.x zusammenführen
author Gernot Belger <g.belger@bjoernsen.de>
date Wed, 15 Jul 2020 11:53:27 +0200
parents 415df0fc4fa1
children
rev   line source
100
933bbc9fc11f Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 94
diff changeset
1 /*
933bbc9fc11f Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 94
diff changeset
2 * Copyright (c) 2010 by Intevation GmbH
933bbc9fc11f Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 94
diff changeset
3 *
933bbc9fc11f Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 94
diff changeset
4 * This program is free software under the LGPL (>=v2.1)
933bbc9fc11f Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 94
diff changeset
5 * Read the file LGPL.txt coming with the software for details
933bbc9fc11f Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 94
diff changeset
6 * or visit http://www.gnu.org/licenses/ if it does not exist.
933bbc9fc11f Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 94
diff changeset
7 */
933bbc9fc11f Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 94
diff changeset
8
475
415df0fc4fa1 Fixed maven group ids
Sascha L. Teichmann <teichmann@intevation.de>
parents: 471
diff changeset
9 package org.dive4elements.artifacts;
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
93
e27cf9c84eb8 Unified imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 78
diff changeset
11 import java.util.Iterator;
298
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
12 import java.util.Map;
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
13 import java.util.HashMap;
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
14 import java.util.ArrayList;
93
e27cf9c84eb8 Unified imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 78
diff changeset
15
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 import javax.xml.XMLConstants;
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 import javax.xml.namespace.NamespaceContext;
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20 /**
78
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
21 * The namespace used in artifact documents.
77
48d1a9a082c2 Bring @author javadoc tags in form '@author <a href="john.doe@example.com">John Doe</a>'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 47
diff changeset
22 * @author <a href="mailto:sascha.teichmann@intevation">Sascha L. Teichmann</a>
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 */
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24 public class ArtifactNamespaceContext
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 implements NamespaceContext
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 {
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 /**
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 * The URI of the namespace of the artifacts.
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 */
94
5332d956729c Brought all line lengths of non Javadoc lines below 80.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 93
diff changeset
30 public final static String NAMESPACE_URI =
5332d956729c Brought all line lengths of non Javadoc lines below 80.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 93
diff changeset
31 "http://www.intevation.de/2009/artifacts";
47
4ae4dc99127d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 26
diff changeset
32
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 /**
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 * The XML prefix for the artifacts namespace.
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35 */
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 public final static String NAMESPACE_PREFIX = "art";
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37
78
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
38 /**
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
39 * Final instance to be easily used to avoid creation
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
40 * of instances.
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
41 */
26
83a059c204f8 Connected /create with artifact db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 24
diff changeset
42 public static final ArtifactNamespaceContext INSTANCE =
83a059c204f8 Connected /create with artifact db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 24
diff changeset
43 new ArtifactNamespaceContext();
83a059c204f8 Connected /create with artifact db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 24
diff changeset
44
298
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
45 protected Map<String, String> map;
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
46
78
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
47 /**
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
48 * The default constructor.
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
49 */
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50 public ArtifactNamespaceContext() {
298
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
51 map = new HashMap<String, String>();
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
52 map.put(
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
53 XMLConstants.XML_NS_PREFIX, XMLConstants.XML_NS_URI);
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
54 map.put(
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
55 XMLConstants.DEFAULT_NS_PREFIX, XMLConstants.DEFAULT_NS_PREFIX);
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
56 map.put(
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
57 XMLConstants.XMLNS_ATTRIBUTE, XMLConstants.XMLNS_ATTRIBUTE_NS_URI);
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
58 map.put(
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
59 NAMESPACE_PREFIX, NAMESPACE_URI);
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
60 }
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
61
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
62 public void add(String prefix, String uri) {
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
63 map.put(prefix, uri);
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
64 }
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
65
78
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
66 /**
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
67 * @see javax.xml.namespace.NamespaceContext#getNamespaceURI(String)
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
68 * @param prefix The prefix
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
69 * @return The corresponing URI
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
70 */
301
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 298
diff changeset
71 @Override
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
72 public String getNamespaceURI(String prefix) {
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
73
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
74 if (prefix == null) {
298
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
75 throw new IllegalArgumentException("Null prefix");
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
76 }
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
77
298
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
78 String namespace = map.get(prefix);
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
79
298
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
80 return namespace != null ? namespace : XMLConstants.NULL_NS_URI;
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
81 }
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
82
78
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
83 /**
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
84 * @see javax.xml.namespace.NamespaceContext#getPrefix(String)
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
85 * @param uri The URI
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
86 */
301
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 298
diff changeset
87 @Override
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
88 public String getPrefix(String uri) {
394
c40729bfe06d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 301
diff changeset
89
298
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
90 if (uri == null) {
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
91 throw new IllegalArgumentException("Null uri");
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
92 }
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
93
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
94 for (Map.Entry<String, String> entry: map.entrySet()) {
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
95 if (entry.getValue().equals(uri)) {
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
96 return entry.getKey();
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
97 }
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
98 }
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
99
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
100 return XMLConstants.DEFAULT_NS_PREFIX;
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
101 }
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
102
78
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
103 /**
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
104 * @see javax.xml.namespace.NamespaceContext#getPrefixes(java.lang.String)
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
105 * @param uri The URI
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
106 */
301
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 298
diff changeset
107 @Override
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
108 public Iterator getPrefixes(String uri) {
298
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
109 ArrayList<String> results = new ArrayList<String>();
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
110 for (Map.Entry<String, String> entry: map.entrySet()) {
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
111 if (entry.getValue().equals(uri)) {
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
112 results.add(entry.getKey());
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
113 }
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
114 }
a5e6d1923c95 Made namespace resolution more compatible.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 100
diff changeset
115 return results.iterator();
24
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
116 }
d5dc2900392f * Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
117 }
78
55eefe63a777 Repaired the javadoc stuff for almost all artifact interfaces.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 77
diff changeset
118 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org