org.apache.ws.commons.util
Class NamespaceContextImpl
public
class
NamespaceContextImpl
extends Object
implements NamespaceContext
Default implementation of {@link javax.xml.namespace.NamespaceContext}.
Method Summary |
String | checkContext(int i) This method is used to restore the namespace state
after an element is created. |
void | endPrefixMapping(String pPrefix) Removes the declaration of the prefix, which has been defined
last. |
String | getAttributePrefix(String pURI) Returns a non-empty prefix currently mapped to the given
URL or null, if there is no such mapping. |
int | getContext() Returns the current number of assigned prefixes.
|
String | getNamespaceURI(String pPrefix) Given a prefix, returns the URI to which the prefix is
currently mapped or null, if there is no such mapping.
Note: This methods behaviour is precisely
defined by {@link NamespaceContext#getNamespaceURI(java.lang.String)}. |
String | getPrefix(String pURI) Returns a prefix currently mapped to the given URI or
null, if there is no such mapping. |
Iterator | getPrefixes(String pURI) Returns a collection to all prefixes bound to the given
namespace URI.
|
List | getPrefixes() Returns a list of all prefixes, which are currently declared,
in the order of declaration. |
boolean | isPrefixDeclared(String pPrefix) Returns whether a given prefix is currently declared. |
void | reset() Resets the NamespaceSupport's state. |
void | startPrefixMapping(String pPrefix, String pURI) Declares a new prefix. |
public String checkContext(int i)
This method is used to restore the namespace state
after an element is created. It takes as input a state,
as returned by {@link #getContext()}.
For any prefix, which was since saving the state,
the prefix is returned and deleted from the internal
list. In other words, a typical use looks like this:
NamespaceSupport nss;
ContentHandler h;
int context = nss.getContext();
h.startElement("foo", "bar", "f:bar", new AttributesImpl());
...
h.endElement("foo", "bar", "f:bar");
for (;;) {
String prefix = nss.checkContext(context);
if (prefix == null) {
break;
}
h.endPrefixMapping(prefix);
}
public void endPrefixMapping(String pPrefix)
Removes the declaration of the prefix, which has been defined
last. Typically called from within
{@link org.xml.sax.ContextHandler#endPrefixMapping(java.lang.String)}.
Throws: IllegalArgumentException The prefix is null. IllegalStateException The prefix is not the prefix, which
has been defined last. In other words, the calls to
{@link #startPrefixMapping(String, String)}, and
{@link #endPrefixMapping(String)} aren't in LIFO order.
public String getAttributePrefix(String pURI)
Returns a non-empty prefix currently mapped to the given
URL or null, if there is no such mapping. This method may be
used to find a possible prefix for an attributes namespace
URI. For elements you should use {@link #getPrefix(String)}.
Parameters: pURI Thhe namespace URI in question
Throws: IllegalArgumentException The namespace URI is null.
public int getContext()
Returns the current number of assigned prefixes.
Note, that a prefix may be assigned in several nested
elements, in which case every assignment is counted.
This method is typically called before invoking the
method
{@link org.xml.sax.ContentHandler#startElement(String, String, String, org.xml.sax.Attributes)}.
The return value is used as a saveable state. After
invoking
{@link org.xml.sax.ContentHandler#endElement(String, String, String)},
the state is restored by calling {@link #checkContext(int)}.
public String getNamespaceURI(String pPrefix)
Given a prefix, returns the URI to which the prefix is
currently mapped or null, if there is no such mapping.
Note: This methods behaviour is precisely
defined by {@link NamespaceContext#getNamespaceURI(java.lang.String)}.
Parameters: pPrefix The prefix in question
public String getPrefix(String pURI)
Returns a prefix currently mapped to the given URI or
null, if there is no such mapping. This method may be used
to find a possible prefix for an elements namespace URI. For
attributes you should use {@link #getAttributePrefix(String)}.
Note: This methods behaviour is precisely
defined by {@link NamespaceContext#getPrefix(java.lang.String)}.
Parameters: pURI The namespace URI in question
Throws: IllegalArgumentException The namespace URI is null.
public Iterator getPrefixes(String pURI)
Returns a collection to all prefixes bound to the given
namespace URI.
Note: This methods behaviour is precisely
defined by {@link NamespaceContext#getPrefixes(java.lang.String)}.
Parameters: pURI The namespace prefix in question
public List getPrefixes()
Returns a list of all prefixes, which are currently declared,
in the order of declaration. Duplicates are possible, if a
prefix has been assigned to more than one URI, or repeatedly to
the same URI.
public boolean isPrefixDeclared(String pPrefix)
Returns whether a given prefix is currently declared.
public void reset()
Resets the NamespaceSupport's state. Allows reusing the
object.
public void startPrefixMapping(String pPrefix, String pURI)
Declares a new prefix. Typically called from within
{@link org.xml.sax.ContextHandler#startPrefixMapping(java.lang.String, java.lang.String)}.
Throws: IllegalArgumentException Prefix or URI are null.
Copyright © 2005-2007 Apache Software Foundation. All Rights Reserved.