public final class ElemAttrs extends Object
Implementation note: code for using Map-like structure is unfortunately
cut'n pasted from AttributeCollector
. Problem
with refactoring is that it's 90% the same code, but not 100%.
Although instances of this class are constructed by stream readers, it is actually used by element event objects.
Constructor and Description |
---|
ElemAttrs(String[] rawAttrs,
int defOffset)
Method called to create "short" attribute list; list that has
only few entries, and can thus be searched for attributes using
linear search, without using any kind of Map structure.
|
ElemAttrs(String[] rawAttrs,
int defOffset,
int[] attrMap,
int hashSize,
int spillEnd)
Method called to create "long" attribute list; list that has
a few entries, and efficient access by fully-qualified name should
not be done by linear search.
|
Modifier and Type | Method and Description |
---|---|
int |
findIndex(QName name) |
int |
getFirstDefaultOffset() |
String[] |
getRawAttrs() |
boolean |
isDefault(int ix) |
public ElemAttrs(String[] rawAttrs, int defOffset)
Currently the limit is 4 attributes; 1, 2 or 3 attribute lists are considered short, 4 or more 'long'.
rawAttrs
- Array that contains 4 Strings for each attribute;
localName, URI, prefix, value. Can be used to lazily construct
structure(s) needed to return Iterator for accessing all
attributes.defOffset
- Index of the first default attribute, if any;
number of all attributes if nonepublic ElemAttrs(String[] rawAttrs, int defOffset, int[] attrMap, int hashSize, int spillEnd)
rawAttrs
- Array that contains 4 Strings for each attribute;
localName, URI, prefix, value. Can be used to lazily construct
structure(s) needed to return Iterator for accessing all
attributes.Copyright © 2018 FasterXML. All rights reserved.