Package com.ctc.wstx.util
Class BijectiveNsMap
java.lang.Object
com.ctc.wstx.util.BijectiveNsMap
Helper 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
FieldsModifier and TypeFieldDescription(package private) static final int
Let's plan for having up to 14 explicit namespace declarations (2 defaults, for 'xml' and 'xmlns', are pre-populated)private static final int
As a simple protection against infinite loops, use an arbitrary but bound limit for iterators(package private) String[]
Array that contains { prefix, ns-uri } pairs, up to (but not including) indexmScopeEnd
.(package private) int
(package private) final int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddGeneratedMapping
(String prefixBase, NamespaceContext ctxt, String uri, int[] seqArr) Method used to add a dynamic binding, and return the prefix used to bind the specified namespace URI.addMapping
(String prefix, String uri) Method to add a new prefix-to-URI mapping for the current scope.static BijectiveNsMap
findPrefixByUri
(String uri) findUriByPrefix
(String prefix) getPrefixesBoundToUri
(String uri, List<String> l) int
int
size()
toString()
-
Field Details
-
DEFAULT_ARRAY_SIZE
static final int DEFAULT_ARRAY_SIZELet's plan for having up to 14 explicit namespace declarations (2 defaults, for 'xml' and 'xmlns', are pre-populated)- See Also:
-
MAX_LOOP_FOR_NEW_PREFIX
private static final int MAX_LOOP_FOR_NEW_PREFIXAs a simple protection against infinite loops, use an arbitrary but bound limit for iterators- See Also:
-
mScopeStart
final int mScopeStart -
mNsStrings
String[] mNsStringsArray that contains { prefix, ns-uri } pairs, up to (but not including) indexmScopeEnd
. -
mScopeEnd
int mScopeEnd
-
-
Constructor Details
-
BijectiveNsMap
-
-
Method Details
-
createEmpty
-
createChild
-
findUriByPrefix
-
findPrefixByUri
-
getPrefixesBoundToUri
-
size
public int size() -
localSize
public int localSize() -
addMapping
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 String addGeneratedMapping(String prefixBase, NamespaceContext ctxt, String uri, int[] seqArr) Method used to add a dynamic binding, and return the prefix used to bind the specified namespace URI. -
toString
-