[Practicalxml-commits] SF.net SVN: practicalxml:[51] trunk/src
Brought to you by:
kdgregory
|
From: Auto-Generated S. C. M. <pra...@li...> - 2008-12-14 15:15:46
|
Revision: 51
http://practicalxml.svn.sourceforge.net/practicalxml/?rev=51&view=rev
Author: kdgregory
Date: 2008-12-14 15:15:44 +0000 (Sun, 14 Dec 2008)
Log Message:
-----------
NamespaceResolver: add getDefaultNamespace(), getAllPrefixes()
Modified Paths:
--------------
trunk/src/main/java/net/sf/practicalxml/misc/NamespaceResolver.java
trunk/src/test/java/net/sf/practicalxml/misc/TestNamespaceResolver.java
Modified: trunk/src/main/java/net/sf/practicalxml/misc/NamespaceResolver.java
===================================================================
--- trunk/src/main/java/net/sf/practicalxml/misc/NamespaceResolver.java 2008-12-09 18:54:12 UTC (rev 50)
+++ trunk/src/main/java/net/sf/practicalxml/misc/NamespaceResolver.java 2008-12-14 15:15:44 UTC (rev 51)
@@ -1,9 +1,12 @@
package net.sf.practicalxml.misc;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.SortedSet;
+import java.util.TreeMap;
import java.util.TreeSet;
import javax.xml.XMLConstants;
import javax.xml.namespace.NamespaceContext;
@@ -39,7 +42,7 @@
XML_NS_ATTR_PREFIXES.add(XMLConstants.XMLNS_ATTRIBUTE);
}
- private Map<String,String> _prefix2ns = new HashMap<String,String>();
+ private TreeMap<String,String> _prefix2ns = new TreeMap<String,String>();
private Map<String,SortedSet<String>> _ns2prefix = new HashMap<String,SortedSet<String>>();
private String _defaultNS = "";
@@ -88,6 +91,26 @@
}
+ /**
+ * Returns the default namespace, an empty string if one has not yet
+ * been set.
+ */
+ public String getDefaultNamespace()
+ {
+ return _defaultNS;
+ }
+
+
+ /**
+ * Returns a list of all prefixes known to this resolver, in alphabetical
+ * order.
+ */
+ public List<String> getAllPrefixes()
+ {
+ return new ArrayList<String>(_prefix2ns.keySet());
+ }
+
+
//----------------------------------------------------------------------------
// NamespaceContext implementation
//----------------------------------------------------------------------------
Modified: trunk/src/test/java/net/sf/practicalxml/misc/TestNamespaceResolver.java
===================================================================
--- trunk/src/test/java/net/sf/practicalxml/misc/TestNamespaceResolver.java 2008-12-09 18:54:12 UTC (rev 50)
+++ trunk/src/test/java/net/sf/practicalxml/misc/TestNamespaceResolver.java 2008-12-14 15:15:44 UTC (rev 51)
@@ -1,6 +1,8 @@
package net.sf.practicalxml.misc;
import java.util.Iterator;
+import java.util.List;
+
import javax.xml.XMLConstants;
import javax.xml.namespace.NamespaceContext;
@@ -174,6 +176,7 @@
{
NamespaceResolver resolv = new NamespaceResolver();
+ assertEquals("", resolv.getDefaultNamespace());
assertEquals("", resolv.getNamespaceURI(""));
assertEquals("", resolv.getPrefix(""));
Iterator<String> itx1 = resolv.getPrefixes("");
@@ -182,14 +185,42 @@
assertSame(resolv, resolv.setDefaultNamespace("foo"));
+ assertEquals("foo", resolv.getDefaultNamespace());
assertEquals("foo", resolv.getNamespaceURI(""));
assertEquals("", resolv.getPrefix("foo"));
Iterator<String> itx2 = resolv.getPrefixes("foo");
assertEquals("", itx2.next());
assertFalse(itx2.hasNext());
+
+ assertSame(resolv, resolv.setDefaultNamespace("bar"));
+
+ assertEquals("bar", resolv.getDefaultNamespace());
+ assertEquals("bar", resolv.getNamespaceURI(""));
+ assertEquals("", resolv.getPrefix("bar"));
+ Iterator<String> itx3 = resolv.getPrefixes("bar");
+ assertEquals("", itx3.next());
+ assertFalse(itx3.hasNext());
}
+ public void testGetAllPrefixes() throws Exception
+ {
+ NamespaceResolver resolv = new NamespaceResolver()
+ .addNamespace("foo", "bar")
+ .addNamespace("baz", "bar")
+ .addNamespace("baz", "biggles") // intentional overwrite
+ .addNamespace("argle", "bargle");
+
+ List<String> prefixes = resolv.getAllPrefixes();
+ assertEquals(3, prefixes.size());
+
+ Iterator<String> itx = prefixes.iterator();
+ assertEquals("argle", itx.next());
+ assertEquals("baz", itx.next());
+ assertEquals("foo", itx.next());
+ }
+
+
public void testEqualsAndHashCode() throws Exception
{
Object obj1 = new NamespaceResolver()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|