Package com.ctc.wstx.util
Class BijectiveNsMap
- java.lang.Object
-
- com.ctc.wstx.util.BijectiveNsMap
-
public final class BijectiveNsMap extends java.lang.ObjectHelper class that implements "bijective map" (Map that allows use of values as keys and vice versa, bidirectional access), and is specifically used for storing namespace binding information. One thing worth noting is that Strings stored are NOT assumed to have been unified (interned) -- if they were, different implementation would be more optimal.Currently only used by stream writers, but could be more generally useful too.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static intDEFAULT_ARRAY_SIZELet's plan for having up to 14 explicit namespace declarations (2 defaults, for 'xml' and 'xmlns', are pre-populated)private static intMAX_LOOP_FOR_NEW_PREFIXAs a simple protection against infinite loops, use an arbitrary but bound limit for iterators(package private) java.lang.String[]mNsStringsArray that contains { prefix, ns-uri } pairs, up to (but not including) indexmScopeEnd.(package private) intmScopeEnd(package private) intmScopeStart
-
Constructor Summary
Constructors Modifier Constructor Description privateBijectiveNsMap(int scopeStart, java.lang.String[] strs)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringaddGeneratedMapping(java.lang.String prefixBase, javax.xml.namespace.NamespaceContext ctxt, java.lang.String uri, int[] seqArr)Method used to add a dynamic binding, and return the prefix used to bind the specified namespace URI.java.lang.StringaddMapping(java.lang.String prefix, java.lang.String uri)Method to add a new prefix-to-URI mapping for the current scope.BijectiveNsMapcreateChild()static BijectiveNsMapcreateEmpty()java.lang.StringfindPrefixByUri(java.lang.String uri)java.lang.StringfindUriByPrefix(java.lang.String prefix)java.util.List<java.lang.String>getPrefixesBoundToUri(java.lang.String uri, java.util.List<java.lang.String> l)intlocalSize()intsize()java.lang.StringtoString()
-
-
-
Field Detail
-
DEFAULT_ARRAY_SIZE
static final int DEFAULT_ARRAY_SIZE
Let's plan for having up to 14 explicit namespace declarations (2 defaults, for 'xml' and 'xmlns', are pre-populated)- See Also:
- Constant Field Values
-
MAX_LOOP_FOR_NEW_PREFIX
private static final int MAX_LOOP_FOR_NEW_PREFIX
As a simple protection against infinite loops, use an arbitrary but bound limit for iterators- See Also:
- Constant Field Values
-
mScopeStart
final int mScopeStart
-
mNsStrings
java.lang.String[] mNsStrings
Array that contains { prefix, ns-uri } pairs, up to (but not including) indexmScopeEnd.
-
mScopeEnd
int mScopeEnd
-
-
Method Detail
-
createEmpty
public static BijectiveNsMap createEmpty()
-
createChild
public BijectiveNsMap createChild()
-
findUriByPrefix
public java.lang.String findUriByPrefix(java.lang.String prefix)
-
findPrefixByUri
public java.lang.String findPrefixByUri(java.lang.String uri)
-
getPrefixesBoundToUri
public java.util.List<java.lang.String> getPrefixesBoundToUri(java.lang.String uri, java.util.List<java.lang.String> l)
-
size
public int size()
-
localSize
public int localSize()
-
addMapping
public java.lang.String addMapping(java.lang.String prefix, java.lang.String uri)Method to add a new prefix-to-URI mapping for the current scope. Note that it should NOT be used for the default namespace declaration- Parameters:
prefix- Prefix to binduri- URI to bind to the prefix- Returns:
- If the prefix was already bound, the URI it was bound to: null if it's a new binding for the current scope.
-
addGeneratedMapping
public java.lang.String addGeneratedMapping(java.lang.String prefixBase, javax.xml.namespace.NamespaceContext ctxt, java.lang.String uri, int[] seqArr)Method used to add a dynamic binding, and return the prefix used to bind the specified namespace URI.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-