Class AttributeCollector
java.lang.Object
com.fasterxml.aalto.in.AttributeCollector
Object used by the tokenizer to collect and store information
about attributes, specifically, names and values.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int[]Int-based compact data structure that contains mapping from attribute names to attribute indexes in the main attribute name array.protected intSize of hash area in_attrMap; generally at least 20% more than number of attributes (_attrCount).protected intPointer to int slot right after last spill entry, in_attrMaparray. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionchar[]byte[]decodeBinaryValue(int index, org.codehaus.stax2.typed.Base64Variant v, org.codehaus.stax2.ri.typed.CharArrayBase64Decoder dec, XmlScanner scanner) final voiddecodeValue(int index, org.codehaus.stax2.typed.TypedValueDecoder dec) final intdecodeValues(int index, org.codehaus.stax2.typed.TypedArrayDecoder dec, XmlScanner scanner) intfinal intfinishLastValue(int endingOffset) Method called after all attribute entries have been parsed, and thus the end of the last value in the buffer is known.final intfinal intgetCount()final PNamegetName(int index) final QNamegetQName(int index) getValue(int index) char[]startNewValue(PName attrName, int currOffset) Method called by the parser right after attribute name has been parsed, but before value has been parsed.char[]Method called by the owner, when the
-
Field Details
-
_attrMap
protected int[] _attrMapInt-based compact data structure that contains mapping from attribute names to attribute indexes in the main attribute name array.Data structure contains two separate areas; main hash area (with size
_hashAreaSize), and remaining spillover area that follows hash area up until (but not including)_spillAreaEndindex. Main hash area only contains indexes (index+1; 0 signifying empty slot) to actual attributes; spillover area has both hash and index for any spilled entry. Spilled entries are simply stored in order added, and need to be searched using linear search. In case of both primary hash hits and spills, eventual comparison with the local name needs to be done with actual name array. -
_hashAreaSize
protected int _hashAreaSizeSize of hash area in_attrMap; generally at least 20% more than number of attributes (_attrCount). -
_spillAreaEnd
protected int _spillAreaEndPointer to int slot right after last spill entry, in_attrMaparray.
-
-
Constructor Details
-
AttributeCollector
-
-
Method Details
-
startNewValue
Method called by the parser right after attribute name has been parsed, but before value has been parsed.- Returns:
- Underlying character buffer to use for storing attribute value characters
-
continueValue
public char[] continueValue() -
finishLastValue
public final int finishLastValue(int endingOffset) Method called after all attribute entries have been parsed, and thus the end of the last value in the buffer is known.- Returns:
- Number of attributes collected
-
finishLastValue2
public final int finishLastValue2() -
valueBufferFull
public char[] valueBufferFull()Method called by the owner, when the -
getCount
public final int getCount() -
getName
-
getQName
-
getValue
-
getValue
-
findIndex
-
getErrorMsg
-
decodeValue
public final void decodeValue(int index, org.codehaus.stax2.typed.TypedValueDecoder dec) throws IllegalArgumentException - Throws:
IllegalArgumentException
-
decodeValues
public final int decodeValues(int index, org.codehaus.stax2.typed.TypedArrayDecoder dec, XmlScanner scanner) throws XMLStreamException - Throws:
XMLStreamException
-
decodeBinaryValue
public byte[] decodeBinaryValue(int index, org.codehaus.stax2.typed.Base64Variant v, org.codehaus.stax2.ri.typed.CharArrayBase64Decoder dec, XmlScanner scanner) throws XMLStreamException - Throws:
XMLStreamException
-