2 Copyright (C) 2001, 2006 United States Government
3 as represented by the Administrator of the
4 National Aeronautics and Space Administration.
7 package gov
.nasa
.worldwind
.wms
;
9 import javax
.xml
.XMLConstants
;
10 import javax
.xml
.namespace
.NamespaceContext
;
14 * @author Java & XML 3e
15 * @version $Id: SimpleNamespaceContext.java 2471 2007-07-31 21:50:57Z tgaskins $
17 public class SimpleNamespaceContext
implements NamespaceContext
20 private Map
<String
, String
> urisByPrefix
= new HashMap
<String
, String
>();
21 private Map
<String
, Set
<String
>> prefixesByURI
= new HashMap
<String
, Set
<String
>>();
23 public SimpleNamespaceContext()
25 // prepopulate with xml and xmlns prefixes
26 // per JavaDoc of NamespaceContext interface
27 addNamespace(XMLConstants
.XML_NS_PREFIX
, XMLConstants
.XML_NS_URI
);
28 addNamespace(XMLConstants
.XMLNS_ATTRIBUTE
, XMLConstants
.XMLNS_ATTRIBUTE_NS_URI
);
29 addNamespace("xlink", "http://www.w3.org/1999/xlink");
30 addNamespace("wms", "http://www.opengis.net/wms");
31 addNamespace(XMLConstants
.DEFAULT_NS_PREFIX
, "http://www.opengis.net/wms");
34 public synchronized void addNamespace(String prefix
, String namespaceURI
)
36 urisByPrefix
.put(prefix
, namespaceURI
);
37 if (prefixesByURI
.containsKey(namespaceURI
))
39 (prefixesByURI
.get(namespaceURI
)).add(prefix
);
43 Set
<String
> set
= new HashSet
<String
>();
45 prefixesByURI
.put(namespaceURI
, set
);
49 public String
getNamespaceURI(String prefix
)
52 throw new IllegalArgumentException("prefix cannot be null");
53 if (urisByPrefix
.containsKey(prefix
))
54 return urisByPrefix
.get(prefix
);
56 return XMLConstants
.NULL_NS_URI
;
59 public String
getPrefix(String namespaceURI
)
61 return (String
) getPrefixes(namespaceURI
).next();
64 public Iterator
getPrefixes(String namespaceURI
)
66 if (namespaceURI
== null)
67 throw new IllegalArgumentException("namespaceURI cannot be null");
68 if (prefixesByURI
.containsKey(namespaceURI
))
70 return (prefixesByURI
.get(namespaceURI
)).iterator();
74 return Collections
.EMPTY_SET
.iterator();