Class EncodingAlgorithmAttributesImpl

  • All Implemented Interfaces:
    EncodingAlgorithmAttributes, org.xml.sax.Attributes

    public class EncodingAlgorithmAttributesImpl
    extends java.lang.Object
    implements EncodingAlgorithmAttributes
    Default implementation of the 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:

    1. to take a persistent snapshot of an EncodingAlgorithmAttributes object in a startElement event; or
    2. to construct or modify an EncodingAlgorithmAttributes object in a SAX2 driver or filter.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addAttribute​(java.lang.String URI, java.lang.String localName, java.lang.String qName, java.lang.String type, java.lang.String value)
      Add an attribute to the end of the list.
      void addAttribute​(java.lang.String URI, java.lang.String localName, java.lang.String qName, java.lang.String type, java.lang.String value, boolean index, java.lang.String alphabet)
      Add an attribute to the end of the list.
      void addAttributeWithAlgorithmData​(java.lang.String URI, java.lang.String localName, java.lang.String qName, java.lang.String algorithmURI, int algorithmID, java.lang.Object algorithmData)
      Add an attribute with algorithm data to the end of the list.
      void addAttributeWithBuiltInAlgorithmData​(java.lang.String URI, java.lang.String localName, java.lang.String qName, int builtInAlgorithmID, java.lang.Object algorithmData)
      Add an attribute with built in algorithm data to the end of the list.
      void clear()
      Clear the attribute list for reuse.
      private java.lang.StringBuffer convertEncodingAlgorithmDataToString​(int identifier, java.lang.String URI, java.lang.Object data)  
      java.lang.Object getAlgorithmData​(int index)
      Return the data of the encoding algorithm.
      int getAlgorithmIndex​(int index)
      Return the index of the encoding algorithm.
      java.lang.String getAlgorithmURI​(int index)
      Return the URI of the encoding algorithm.
      java.lang.String getAlpababet​(int index)
      Return the alphabet associated with the attribute value.
      int getIndex​(java.lang.String qName)  
      int getIndex​(java.lang.String uri, java.lang.String localName)  
      int getLength()  
      java.lang.String getLocalName​(int index)  
      java.lang.String getQName​(int index)  
      boolean getToIndex​(int index)
      Return the whether the attribute value should be indexed or not.
      java.lang.String getType​(int index)  
      java.lang.String getType​(java.lang.String qName)  
      java.lang.String getType​(java.lang.String uri, java.lang.String localName)  
      java.lang.String getURI​(int index)  
      java.lang.String getValue​(int index)  
      java.lang.String getValue​(java.lang.String qName)  
      java.lang.String getValue​(java.lang.String uri, java.lang.String localName)  
      private java.lang.String replaceNull​(java.lang.String s)  
      void replaceWithAttributeAlgorithmData​(int index, java.lang.String algorithmURI, int algorithmID, java.lang.Object algorithmData)
      Replace an attribute value with algorithm data.
      private void resize()  
      private void resizeNoCopy()  
      void setAttributes​(EncodingAlgorithmAttributes atts)
      Copy an entire EncodingAlgorithmAttributes object.
      void setAttributes​(org.xml.sax.Attributes atts)
      Copy an entire Attributes object.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • _registeredEncodingAlgorithms

        private java.util.Map<java.lang.String,​EncodingAlgorithm> _registeredEncodingAlgorithms
      • _length

        private int _length
      • _data

        private java.lang.String[] _data
      • _algorithmIds

        private int[] _algorithmIds
      • _algorithmData

        private java.lang.Object[] _algorithmData
      • _alphabets

        private java.lang.String[] _alphabets
      • _toIndex

        private boolean[] _toIndex
    • Constructor Detail

      • EncodingAlgorithmAttributesImpl

        public EncodingAlgorithmAttributesImpl()
        Construct a new, empty EncodingAlgorithmAttributesImpl object.
      • EncodingAlgorithmAttributesImpl

        public EncodingAlgorithmAttributesImpl​(org.xml.sax.Attributes attributes)
        Copy an existing Attributes object.

        This constructor is especially useful inside a startElement event.

        Parameters:
        attributes - The existing Attributes object.
      • EncodingAlgorithmAttributesImpl

        public EncodingAlgorithmAttributesImpl​(java.util.Map<java.lang.String,​EncodingAlgorithm> registeredEncodingAlgorithms,
                                               org.xml.sax.Attributes attributes)
        Use registered encoding algorithms and copy an existing Attributes object.

        This constructor is especially useful inside a startElement event.

        Parameters:
        registeredEncodingAlgorithms - The registeredEncodingAlgorithms encoding algorithms.
        attributes - The existing Attributes object.
    • Method Detail

      • clear

        public final void clear()
        Clear the attribute list for reuse.
      • addAttribute

        public void addAttribute​(java.lang.String URI,
                                 java.lang.String localName,
                                 java.lang.String qName,
                                 java.lang.String type,
                                 java.lang.String value)
        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​(java.lang.String URI,
                                 java.lang.String localName,
                                 java.lang.String qName,
                                 java.lang.String type,
                                 java.lang.String value,
                                 boolean index,
                                 java.lang.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​(java.lang.String URI,
                                                         java.lang.String localName,
                                                         java.lang.String qName,
                                                         int builtInAlgorithmID,
                                                         java.lang.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​(java.lang.String URI,
                                                  java.lang.String localName,
                                                  java.lang.String qName,
                                                  java.lang.String algorithmURI,
                                                  int algorithmID,
                                                  java.lang.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 algorithm
        algorithmID - The algorithm ID.
        algorithmData - The algorithm data.
      • replaceWithAttributeAlgorithmData

        public void replaceWithAttributeAlgorithmData​(int index,
                                                      java.lang.String algorithmURI,
                                                      int algorithmID,
                                                      java.lang.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 replaced
        algorithmURI - The algorithm URI, or null if a built in algorithm
        algorithmID - The algorithm ID.
        algorithmData - The algorithm data.
      • setAttributes

        public final void setAttributes​(org.xml.sax.Attributes atts)
        Copy an entire Attributes object.
        Parameters:
        atts - The attributes to copy.
      • setAttributes

        public final void setAttributes​(EncodingAlgorithmAttributes atts)
        Copy an entire EncodingAlgorithmAttributes object.
        Parameters:
        atts - The attributes to copy.
      • getLength

        public final int getLength()
        Specified by:
        getLength in interface org.xml.sax.Attributes
      • getLocalName

        public final java.lang.String getLocalName​(int index)
        Specified by:
        getLocalName in interface org.xml.sax.Attributes
      • getQName

        public final java.lang.String getQName​(int index)
        Specified by:
        getQName in interface org.xml.sax.Attributes
      • getType

        public final java.lang.String getType​(int index)
        Specified by:
        getType in interface org.xml.sax.Attributes
      • getURI

        public final java.lang.String getURI​(int index)
        Specified by:
        getURI in interface org.xml.sax.Attributes
      • getValue

        public final java.lang.String getValue​(int index)
        Specified by:
        getValue in interface org.xml.sax.Attributes
      • getIndex

        public final int getIndex​(java.lang.String qName)
        Specified by:
        getIndex in interface org.xml.sax.Attributes
      • getType

        public final java.lang.String getType​(java.lang.String qName)
        Specified by:
        getType in interface org.xml.sax.Attributes
      • getValue

        public final java.lang.String getValue​(java.lang.String qName)
        Specified by:
        getValue in interface org.xml.sax.Attributes
      • getIndex

        public final int getIndex​(java.lang.String uri,
                                  java.lang.String localName)
        Specified by:
        getIndex in interface org.xml.sax.Attributes
      • getType

        public final java.lang.String getType​(java.lang.String uri,
                                              java.lang.String localName)
        Specified by:
        getType in interface org.xml.sax.Attributes
      • getValue

        public final java.lang.String getValue​(java.lang.String uri,
                                               java.lang.String localName)
        Specified by:
        getValue in interface org.xml.sax.Attributes
      • getAlgorithmURI

        public final java.lang.String getAlgorithmURI​(int index)
        Description copied from interface: EncodingAlgorithmAttributes
        Return 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:
        getAlgorithmURI in interface EncodingAlgorithmAttributes
        Parameters:
        index - The attribute index (zero-based).
        Returns:
        The URI. If the index is out of range then null is returned.
      • getAlgorithmData

        public final java.lang.Object getAlgorithmData​(int index)
        Description copied from interface: EncodingAlgorithmAttributes
        Return 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 null is returned.

        Specified by:
        getAlgorithmData in interface EncodingAlgorithmAttributes
        Parameters:
        index - The attribute index (zero-based).
        Returns:
        The data. If the index is out of range then null is returned.
      • getAlpababet

        public final java.lang.String getAlpababet​(int index)
        Description copied from interface: EncodingAlgorithmAttributes
        Return the alphabet associated with the attribute value.
        Specified by:
        getAlpababet in interface EncodingAlgorithmAttributes
        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: EncodingAlgorithmAttributes
        Return the whether the attribute value should be indexed or not.
        Specified by:
        getToIndex in interface EncodingAlgorithmAttributes
        Parameters:
        index - The attribute index (zero-based).
        Returns:
        True if attribute value should be indexed, otherwise false.
      • replaceNull

        private java.lang.String replaceNull​(java.lang.String s)
      • resizeNoCopy

        private void resizeNoCopy()
      • resize

        private void resize()
      • convertEncodingAlgorithmDataToString

        private java.lang.StringBuffer convertEncodingAlgorithmDataToString​(int identifier,
                                                                            java.lang.String URI,
                                                                            java.lang.Object data)
                                                                     throws FastInfosetException,
                                                                            java.io.IOException
        Throws:
        FastInfosetException
        java.io.IOException