Mercurial > dive4elements > framework
annotate artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java @ 437:423c6e6b0cac
Added tag flys-2.9.3 for changeset 15179c77aa1d
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Tue, 16 Oct 2012 15:51:33 +0200 |
parents | c40729bfe06d |
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 |
24
d5dc2900392f
* Added callback parameter to Artifact.setup()
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 package de.intevation.artifacts; |
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 : |