Class EncodingAlgorithmAttributesImpl
- All Implemented Interfaces:
EncodingAlgorithmAttributes, Attributes
EncodingAlgorithmAttributes interface.
This class provides a default implementation of the SAX2
EncodingAlgorithmAttributes interface, with the
addition of manipulators so that the list can be modified or
reused.
There are two typical uses of this class:
- to take a persistent snapshot of an EncodingAlgorithmAttributes object
in a
startElementevent; or - to construct or modify an EncodingAlgorithmAttributes object in a SAX2 driver or filter.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Object[]private int[]private String[]private String[]private intprivate Mapprivate boolean[]private static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final int -
Constructor Summary
ConstructorsConstructorDescriptionConstruct a new, empty EncodingAlgorithmAttributesImpl object.EncodingAlgorithmAttributesImpl(Map registeredEncodingAlgorithms, Attributes attributes) Use registered encoding algorithms and copy an existing Attributes object.EncodingAlgorithmAttributesImpl(Attributes attributes) Copy an existing Attributes object. -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd an attribute to the end of the list.voidaddAttribute(String URI, String localName, String qName, String type, String value, boolean index, String alphabet) Add an attribute to the end of the list.voidaddAttributeWithAlgorithmData(String URI, String localName, String qName, String algorithmURI, int algorithmID, Object algorithmData) Add an attribute with algorithm data to the end of the list.voidaddAttributeWithBuiltInAlgorithmData(String URI, String localName, String qName, int builtInAlgorithmID, Object algorithmData) Add an attribute with built in algorithm data to the end of the list.final voidclear()Clear the attribute list for reuse.private final StringBufferconvertEncodingAlgorithmDataToString(int identifier, String URI, Object data) final ObjectgetAlgorithmData(int index) Return the data of the encoding algorithm.final intgetAlgorithmIndex(int index) Return the index of the encoding algorithm.final StringgetAlgorithmURI(int index) Return the URI of the encoding algorithm.final StringgetAlpababet(int index) Return the alphabet associated with the attribute value.final intfinal intfinal intfinal StringgetLocalName(int index) final StringgetQName(int index) final booleangetToIndex(int index) Return the whether the attribute value should be indexed or not.final StringgetType(int index) final Stringfinal Stringfinal StringgetURI(int index) final StringgetValue(int index) final Stringfinal Stringprivate final StringvoidreplaceWithAttributeAlgorithmData(int index, String algorithmURI, int algorithmID, Object algorithmData) Replace an attribute value with algorithm data.private final voidresize()private final voidvoidCopy an entire EncodingAlgorithmAttributes object.voidsetAttributes(Attributes atts) Copy an entire Attributes object.
-
Field Details
-
DEFAULT_CAPACITY
private static final int DEFAULT_CAPACITY- See Also:
-
URI_OFFSET
private static final int URI_OFFSET- See Also:
-
LOCALNAME_OFFSET
private static final int LOCALNAME_OFFSET- See Also:
-
QNAME_OFFSET
private static final int QNAME_OFFSET- See Also:
-
TYPE_OFFSET
private static final int TYPE_OFFSET- See Also:
-
VALUE_OFFSET
private static final int VALUE_OFFSET- See Also:
-
ALGORITHMURI_OFFSET
private static final int ALGORITHMURI_OFFSET- See Also:
-
SIZE
private static final int SIZE- See Also:
-
_registeredEncodingAlgorithms
-
_length
private int _length -
_data
-
_algorithmIds
private int[] _algorithmIds -
_algorithmData
-
_alphabets
-
_toIndex
private boolean[] _toIndex
-
-
Constructor Details
-
EncodingAlgorithmAttributesImpl
public EncodingAlgorithmAttributesImpl()Construct a new, empty EncodingAlgorithmAttributesImpl object. -
EncodingAlgorithmAttributesImpl
Copy an existing Attributes object.This constructor is especially useful inside a
startElementevent.- Parameters:
attributes- The existing Attributes object.
-
EncodingAlgorithmAttributesImpl
Use registered encoding algorithms and copy an existing Attributes object.This constructor is especially useful inside a
startElementevent.- Parameters:
registeredEncodingAlgorithms- The registeredEncodingAlgorithms encoding algorithms.attributes- The existing Attributes object.
-
-
Method Details
-
clear
public final void clear()Clear the attribute list for reuse. -
addAttribute
Add an attribute to the end of the list.For the sake of speed, this method does no checking to see if the attribute is already in the list: that is the responsibility of the application.
- Parameters:
URI- The Namespace URI, or the empty string if none is available or Namespace processing is not being performed.localName- The local name, or the empty string if Namespace processing is not being performed.qName- The qualified (prefixed) name, or the empty string if qualified names are not available.type- The attribute type as a string.value- The attribute value.
-
addAttribute
public void addAttribute(String URI, String localName, String qName, String type, String value, boolean index, String alphabet) Add an attribute to the end of the list.For the sake of speed, this method does no checking to see if the attribute is already in the list: that is the responsibility of the application.
- Parameters:
URI- The Namespace URI, or the empty string if none is available or Namespace processing is not being performed.localName- The local name, or the empty string if Namespace processing is not being performed.qName- The qualified (prefixed) name, or the empty string if qualified names are not available.type- The attribute type as a string.value- The attribute value.index- True if attribute should be indexed.alphabet- The alphabet associated with the attribute value, may be null if there is no associated alphabet.
-
addAttributeWithBuiltInAlgorithmData
public void addAttributeWithBuiltInAlgorithmData(String URI, String localName, String qName, int builtInAlgorithmID, Object algorithmData) Add an attribute with built in algorithm data to the end of the list.For the sake of speed, this method does no checking to see if the attribute is already in the list: that is the responsibility of the application.
- Parameters:
URI- The Namespace URI, or the empty string if none is available or Namespace processing is not being performed.localName- The local name, or the empty string if Namespace processing is not being performed.qName- The qualified (prefixed) name, or the empty string if qualified names are not available.builtInAlgorithmID- The built in algorithm ID.algorithmData- The built in algorithm data.
-
addAttributeWithAlgorithmData
public void addAttributeWithAlgorithmData(String URI, String localName, String qName, String algorithmURI, int algorithmID, Object algorithmData) Add an attribute with algorithm data to the end of the list.For the sake of speed, this method does no checking to see if the attribute is already in the list: that is the responsibility of the application.
- Parameters:
URI- The Namespace URI, or the empty string if none is available or Namespace processing is not being performed.localName- The local name, or the empty string if Namespace processing is not being performed.qName- The qualified (prefixed) name, or the empty string if qualified names are not available.algorithmURI- The algorithm URI, or null if a built in algorithmalgorithmID- The algorithm ID.algorithmData- The algorithm data.
-
replaceWithAttributeAlgorithmData
public void replaceWithAttributeAlgorithmData(int index, String algorithmURI, int algorithmID, Object algorithmData) Replace an attribute value with algorithm data.For the sake of speed, this method does no checking to see if the attribute is already in the list: that is the responsibility of the application.
- Parameters:
index- The index of the attribute whose value is to be replacedalgorithmURI- The algorithm URI, or null if a built in algorithmalgorithmID- The algorithm ID.algorithmData- The algorithm data.
-
setAttributes
Copy an entire Attributes object.- Parameters:
atts- The attributes to copy.
-
setAttributes
Copy an entire EncodingAlgorithmAttributes object.- Parameters:
atts- The attributes to copy.
-
getLength
public final int getLength()- Specified by:
getLengthin interfaceAttributes
-
getLocalName
- Specified by:
getLocalNamein interfaceAttributes
-
getQName
- Specified by:
getQNamein interfaceAttributes
-
getType
- Specified by:
getTypein interfaceAttributes
-
getURI
- Specified by:
getURIin interfaceAttributes
-
getValue
- Specified by:
getValuein interfaceAttributes
-
getIndex
- Specified by:
getIndexin interfaceAttributes
-
getType
- Specified by:
getTypein interfaceAttributes
-
getValue
- Specified by:
getValuein interfaceAttributes
-
getIndex
- Specified by:
getIndexin interfaceAttributes
-
getType
- Specified by:
getTypein interfaceAttributes
-
getValue
- Specified by:
getValuein interfaceAttributes
-
getAlgorithmURI
Description copied from interface:EncodingAlgorithmAttributesReturn the URI of the encoding algorithm.If the algorithm data corresponds to a built-in encoding algorithm then the null is returned.
If the algorithm data corresponds to an application-defined encoding algorithm then the URI of the algorithm is returned.
If
EncodingAlgorithmAttributes.getAlgorithmData(int)returns null then the result of this method is undefined.- Specified by:
getAlgorithmURIin interfaceEncodingAlgorithmAttributes- Parameters:
index- The attribute index (zero-based).- Returns:
- The URI. If the index is out of range then null is returned.
-
getAlgorithmIndex
public final int getAlgorithmIndex(int index) Description copied from interface:EncodingAlgorithmAttributesReturn the index of the encoding algorithm.If
EncodingAlgorithmAttributes.getAlgorithmData(int)returns null then the result of this method is undefined.- Specified by:
getAlgorithmIndexin interfaceEncodingAlgorithmAttributes- Parameters:
index- The attribute index (zero-based).- Returns:
- The algorithm index. If index is out of range then -1 is returned.
- See Also:
-
getAlgorithmData
Description copied from interface:EncodingAlgorithmAttributesReturn the data of the encoding algorithm.If the algorithm data corresponds to a built-in encoding algorithm then an Object corresponding to the Java primitive type is returned.
If the algorithm data corresponds to an application-defined encoding algorithm then an Object that is an instance of
byte[]is returned if there is no EncodingAlgorithm registered for the application-defined encoding algorithm URI. Otherwise, an Object produced from the registeredEncodingAlgorithm is returned.If there no encoding algorithm data associated an attribute then
nullis returned.- Specified by:
getAlgorithmDatain interfaceEncodingAlgorithmAttributes- Parameters:
index- The attribute index (zero-based).- Returns:
- The data. If the index is out of range then null is returned.
-
getAlpababet
Description copied from interface:EncodingAlgorithmAttributesReturn the alphabet associated with the attribute value.- Specified by:
getAlpababetin interfaceEncodingAlgorithmAttributes- Parameters:
index- The attribute index (zero-based).- Returns:
- The alphabet. If the index is out of range then null is returned. If there is is no alphabet then null is returned.
-
getToIndex
public final boolean getToIndex(int index) Description copied from interface:EncodingAlgorithmAttributesReturn the whether the attribute value should be indexed or not.- Specified by:
getToIndexin interfaceEncodingAlgorithmAttributes- Parameters:
index- The attribute index (zero-based).- Returns:
- True if attribute value should be indexed, otherwise false.
-
replaceNull
-
resizeNoCopy
private final void resizeNoCopy() -
resize
private final void resize() -
convertEncodingAlgorithmDataToString
private final StringBuffer convertEncodingAlgorithmDataToString(int identifier, String URI, Object data) throws FastInfosetException, IOException - Throws:
FastInfosetExceptionIOException
-