[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. |