Class StreamReaderImpl

  • All Implemented Interfaces:
    javax.xml.stream.XMLStreamConstants, javax.xml.stream.XMLStreamReader, org.codehaus.stax2.AttributeInfo, org.codehaus.stax2.DTDInfo, org.codehaus.stax2.LocationInfo, org.codehaus.stax2.typed.TypedXMLStreamReader, org.codehaus.stax2.validation.Validatable, org.codehaus.stax2.XMLStreamReader2
    Direct Known Subclasses:
    AsyncStreamReaderImpl

    public class StreamReaderImpl
    extends java.lang.Object
    implements org.codehaus.stax2.XMLStreamReader2, org.codehaus.stax2.AttributeInfo, org.codehaus.stax2.DTDInfo, org.codehaus.stax2.LocationInfo
    Basic backend-independent XMLStreamReader implementation. While the read implements Stax API, most of real work is delegated to input (and thereby, encoding) specific backend implementations.
    • Field Detail

      • _scanner

        protected final XmlScanner _scanner
        Underlying XML scanner
      • _cfgCoalesceText

        protected final boolean _cfgCoalesceText
      • _cfgReportTextAsChars

        protected final boolean _cfgReportTextAsChars
      • _currToken

        protected int _currToken
      • _parseState

        protected int _parseState
        Main parsing/tokenization state (STATE_xxx)
      • _currName

        protected PName _currName
        Prefixed name associated with the current event, if any.
      • _attrCount

        protected int _attrCount
        If the current event is START_ELEMENT, number of attributes the start element has. Otherwise undefined. Updated by reader, to make index checks for other attribute access methods simpler.
      • _decoderFactory

        protected org.codehaus.stax2.ri.typed.ValueDecoderFactory _decoderFactory
        Factory used for constructing decoders we need for typed access
      • _base64Decoder

        protected org.codehaus.stax2.ri.typed.CharArrayBase64Decoder _base64Decoder
        Lazily-constructed decoder object for decoding base64 encoded element binary content.
      • _dtdRootName

        protected PName _dtdRootName
        Prefixed root-name DOCTYPE declaration gave us, if any (note: also serves as a marker to know if we have seen DOCTYPE yet)
      • MASK_GET_TEXT

        private static final int MASK_GET_TEXT
        Bitmask for determining if it's ok to call 'getText'
        See Also:
        Constant Field Values
      • MASK_GET_TEXT_XXX

        private static final int MASK_GET_TEXT_XXX
        Bitmask for determining if it's ok to call 'getTextXXX' methods (not including 'getText' itself)
        See Also:
        Constant Field Values
      • MASK_GET_TEXT_WITH_WRITER

        private static final int MASK_GET_TEXT_WITH_WRITER
        This mask is used with Stax2 getText() method (one that takes Writer as an argument): accepts even wider range of event types.
        See Also:
        Constant Field Values
      • MASK_TYPED_ACCESS_ARRAY

        private static final int MASK_TYPED_ACCESS_ARRAY
        See Also:
        Constant Field Values
      • MASK_TYPED_ACCESS_BINARY

        private static final int MASK_TYPED_ACCESS_BINARY
        See Also:
        Constant Field Values
    • Constructor Detail

      • StreamReaderImpl

        public StreamReaderImpl​(XmlScanner scanner)
    • Method Detail

      • construct

        public static StreamReaderImpl construct​(InputBootstrapper bs)
                                          throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • getScanner

        public XmlScanner getScanner()
        Should not really be public, but needed by SAX code
      • getCharacterEncodingScheme

        public final java.lang.String getCharacterEncodingScheme()
        As per Stax (1.0) specs, needs to return whatever xml declaration claimed encoding is, if any; or null if no xml declaration found.

        Note: method name is rather confusing (compare to getEncoding()).

        Specified by:
        getCharacterEncodingScheme in interface javax.xml.stream.XMLStreamReader
      • getEncoding

        public final java.lang.String getEncoding()
        As per Stax (1.0) specs, needs to return whatever parser determined the encoding was, if it was able to figure it out. If not (there are cases where this can not be found; specifically when being passed a Reader), it should return null.
        Specified by:
        getEncoding in interface javax.xml.stream.XMLStreamReader
      • getVersion

        public java.lang.String getVersion()
        Specified by:
        getVersion in interface javax.xml.stream.XMLStreamReader
      • isStandalone

        public final boolean isStandalone()
        Specified by:
        isStandalone in interface javax.xml.stream.XMLStreamReader
      • standaloneSet

        public final boolean standaloneSet()
        Specified by:
        standaloneSet in interface javax.xml.stream.XMLStreamReader
      • getProperty

        public java.lang.Object getProperty​(java.lang.String name)
        Specified by:
        getProperty in interface javax.xml.stream.XMLStreamReader
      • getAttributeCount

        public final int getAttributeCount()
        Specified by:
        getAttributeCount in interface org.codehaus.stax2.AttributeInfo
        Specified by:
        getAttributeCount in interface javax.xml.stream.XMLStreamReader
      • getAttributeLocalName

        public final java.lang.String getAttributeLocalName​(int index)
        Specified by:
        getAttributeLocalName in interface javax.xml.stream.XMLStreamReader
      • getAttributeName

        public final javax.xml.namespace.QName getAttributeName​(int index)
        Specified by:
        getAttributeName in interface javax.xml.stream.XMLStreamReader
      • getAttributeNamespace

        public final java.lang.String getAttributeNamespace​(int index)
        Specified by:
        getAttributeNamespace in interface javax.xml.stream.XMLStreamReader
      • getAttributePrefix

        public final java.lang.String getAttributePrefix​(int index)
        Specified by:
        getAttributePrefix in interface javax.xml.stream.XMLStreamReader
      • getAttributeType

        public final java.lang.String getAttributeType​(int index)
        Specified by:
        getAttributeType in interface javax.xml.stream.XMLStreamReader
      • getAttributeValue

        public final java.lang.String getAttributeValue​(int index)
        Specified by:
        getAttributeValue in interface javax.xml.stream.XMLStreamReader
      • getAttributeValue

        public final java.lang.String getAttributeValue​(java.lang.String nsURI,
                                                        java.lang.String localName)
        Specified by:
        getAttributeValue in interface javax.xml.stream.XMLStreamReader
      • getElementText

        public final java.lang.String getElementText()
                                              throws javax.xml.stream.XMLStreamException
        From StAX specs:
        Reads the content of a text-only element, an exception is thrown if this is not a text-only element. Regardless of value of javax.xml.stream.isCoalescing this method always returns coalesced content.
        Precondition: the current event is START_ELEMENT.
        Postcondition: the current event is the corresponding END_ELEMENT.
        Specified by:
        getElementText in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getEventType

        public final int getEventType()
        Returns type of the last event returned; or START_DOCUMENT before any events has been explicitly returned.
        Specified by:
        getEventType in interface javax.xml.stream.XMLStreamReader
      • getLocalName

        public final java.lang.String getLocalName()
        Specified by:
        getLocalName in interface javax.xml.stream.XMLStreamReader
      • getName

        public final javax.xml.namespace.QName getName()
        Specified by:
        getName in interface javax.xml.stream.XMLStreamReader
      • getNamespaceContext

        public final javax.xml.namespace.NamespaceContext getNamespaceContext()
        Specified by:
        getNamespaceContext in interface javax.xml.stream.XMLStreamReader
      • getNamespaceCount

        public final int getNamespaceCount()
        Specified by:
        getNamespaceCount in interface javax.xml.stream.XMLStreamReader
      • getNamespacePrefix

        public final java.lang.String getNamespacePrefix​(int index)
        Specified by:
        getNamespacePrefix in interface javax.xml.stream.XMLStreamReader
      • getNamespaceURI

        public final java.lang.String getNamespaceURI()
        Specified by:
        getNamespaceURI in interface javax.xml.stream.XMLStreamReader
      • getNamespaceURI

        public final java.lang.String getNamespaceURI​(int index)
        Specified by:
        getNamespaceURI in interface javax.xml.stream.XMLStreamReader
      • getNamespaceURI

        public final java.lang.String getNamespaceURI​(java.lang.String prefix)
        Specified by:
        getNamespaceURI in interface javax.xml.stream.XMLStreamReader
      • getPIData

        public final java.lang.String getPIData()
        Specified by:
        getPIData in interface javax.xml.stream.XMLStreamReader
      • getPITarget

        public final java.lang.String getPITarget()
        Specified by:
        getPITarget in interface javax.xml.stream.XMLStreamReader
      • getPrefix

        public final java.lang.String getPrefix()
        Specified by:
        getPrefix in interface javax.xml.stream.XMLStreamReader
      • getText

        public final java.lang.String getText()
        Specified by:
        getText in interface javax.xml.stream.XMLStreamReader
      • getTextCharacters

        public final char[] getTextCharacters()
        Specified by:
        getTextCharacters in interface javax.xml.stream.XMLStreamReader
      • getTextCharacters

        public final int getTextCharacters​(int srcStart,
                                           char[] target,
                                           int targetStart,
                                           int len)
        Specified by:
        getTextCharacters in interface javax.xml.stream.XMLStreamReader
      • getTextLength

        public final int getTextLength()
        Specified by:
        getTextLength in interface javax.xml.stream.XMLStreamReader
      • getTextStart

        public final int getTextStart()
        Specified by:
        getTextStart in interface javax.xml.stream.XMLStreamReader
      • hasName

        public final boolean hasName()
        Specified by:
        hasName in interface javax.xml.stream.XMLStreamReader
      • hasNext

        public final boolean hasNext()
        Specified by:
        hasNext in interface javax.xml.stream.XMLStreamReader
      • hasText

        public final boolean hasText()
        Specified by:
        hasText in interface javax.xml.stream.XMLStreamReader
      • isAttributeSpecified

        public final boolean isAttributeSpecified​(int index)
        Specified by:
        isAttributeSpecified in interface javax.xml.stream.XMLStreamReader
      • isCharacters

        public final boolean isCharacters()
        Specified by:
        isCharacters in interface javax.xml.stream.XMLStreamReader
      • isEndElement

        public final boolean isEndElement()
        Specified by:
        isEndElement in interface javax.xml.stream.XMLStreamReader
      • isStartElement

        public final boolean isStartElement()
        Specified by:
        isStartElement in interface javax.xml.stream.XMLStreamReader
      • isWhiteSpace

        public final boolean isWhiteSpace()
        Specified by:
        isWhiteSpace in interface javax.xml.stream.XMLStreamReader
      • require

        public final void require​(int type,
                                  java.lang.String nsUri,
                                  java.lang.String localName)
                           throws javax.xml.stream.XMLStreamException
        Specified by:
        require in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • next

        public final int next()
                       throws javax.xml.stream.XMLStreamException
        Specified by:
        next in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • nextTag

        public final int nextTag()
                          throws javax.xml.stream.XMLStreamException
        Specified by:
        nextTag in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • close

        public final void close()
                         throws javax.xml.stream.XMLStreamException

        Note: as per StAX 1.0 specs, this method does NOT close the underlying input reader. (that is, unless the new StAX2 property org.codehaus.stax2.XMLInputFactory2#P_AUTO_CLOSE_INPUT is set to true).

        Specified by:
        close in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getLocation

        public final javax.xml.stream.Location getLocation()
        Specified by:
        getLocation in interface org.codehaus.stax2.LocationInfo
        Specified by:
        getLocation in interface javax.xml.stream.XMLStreamReader
      • getElementAsBoolean

        public final boolean getElementAsBoolean()
                                          throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementAsBoolean in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getElementAsInt

        public final int getElementAsInt()
                                  throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementAsInt in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getElementAsLong

        public final long getElementAsLong()
                                    throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementAsLong in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getElementAsFloat

        public final float getElementAsFloat()
                                      throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementAsFloat in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getElementAsDouble

        public final double getElementAsDouble()
                                        throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementAsDouble in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getElementAsInteger

        public final java.math.BigInteger getElementAsInteger()
                                                       throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementAsInteger in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getElementAsDecimal

        public final java.math.BigDecimal getElementAsDecimal()
                                                       throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementAsDecimal in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getElementAsQName

        public final javax.xml.namespace.QName getElementAsQName()
                                                          throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementAsQName in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getElementAsBinary

        public final byte[] getElementAsBinary()
                                        throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementAsBinary in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getElementAs

        public final void getElementAs​(org.codehaus.stax2.typed.TypedValueDecoder tvd)
                                throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementAs in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getElementAsBinary

        public final byte[] getElementAsBinary​(org.codehaus.stax2.typed.Base64Variant v)
                                        throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementAsBinary in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • readElementAsIntArray

        public final int readElementAsIntArray​(int[] value,
                                               int from,
                                               int length)
                                        throws javax.xml.stream.XMLStreamException
        Specified by:
        readElementAsIntArray in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • readElementAsLongArray

        public final int readElementAsLongArray​(long[] value,
                                                int from,
                                                int length)
                                         throws javax.xml.stream.XMLStreamException
        Specified by:
        readElementAsLongArray in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • readElementAsFloatArray

        public final int readElementAsFloatArray​(float[] value,
                                                 int from,
                                                 int length)
                                          throws javax.xml.stream.XMLStreamException
        Specified by:
        readElementAsFloatArray in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • readElementAsDoubleArray

        public final int readElementAsDoubleArray​(double[] value,
                                                  int from,
                                                  int length)
                                           throws javax.xml.stream.XMLStreamException
        Specified by:
        readElementAsDoubleArray in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • readElementAsArray

        public final int readElementAsArray​(org.codehaus.stax2.typed.TypedArrayDecoder dec)
                                     throws javax.xml.stream.XMLStreamException
        Specified by:
        readElementAsArray in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • readElementAsBinary

        public final int readElementAsBinary​(byte[] resultBuffer,
                                             int offset,
                                             int maxLength)
                                      throws javax.xml.stream.XMLStreamException
        Specified by:
        readElementAsBinary in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • readElementAsBinary

        public final int readElementAsBinary​(byte[] resultBuffer,
                                             int offset,
                                             int maxLength,
                                             org.codehaus.stax2.typed.Base64Variant v)
                                      throws javax.xml.stream.XMLStreamException
        Specified by:
        readElementAsBinary in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeIndex

        public final int getAttributeIndex​(java.lang.String namespaceURI,
                                           java.lang.String localName)
        Specified by:
        getAttributeIndex in interface org.codehaus.stax2.typed.TypedXMLStreamReader
      • getAttributeAsBoolean

        public final boolean getAttributeAsBoolean​(int index)
                                            throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsBoolean in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsInt

        public final int getAttributeAsInt​(int index)
                                    throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsInt in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsLong

        public final long getAttributeAsLong​(int index)
                                      throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsLong in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsFloat

        public final float getAttributeAsFloat​(int index)
                                        throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsFloat in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsDouble

        public final double getAttributeAsDouble​(int index)
                                          throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsDouble in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsInteger

        public final java.math.BigInteger getAttributeAsInteger​(int index)
                                                         throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsInteger in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsDecimal

        public final java.math.BigDecimal getAttributeAsDecimal​(int index)
                                                         throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsDecimal in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsQName

        public final javax.xml.namespace.QName getAttributeAsQName​(int index)
                                                            throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsQName in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAs

        public final void getAttributeAs​(int index,
                                         org.codehaus.stax2.typed.TypedValueDecoder tvd)
                                  throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAs in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsIntArray

        public final int[] getAttributeAsIntArray​(int index)
                                           throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsIntArray in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsLongArray

        public final long[] getAttributeAsLongArray​(int index)
                                             throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsLongArray in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsFloatArray

        public final float[] getAttributeAsFloatArray​(int index)
                                               throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsFloatArray in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsDoubleArray

        public final double[] getAttributeAsDoubleArray​(int index)
                                                 throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsDoubleArray in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsArray

        public final int getAttributeAsArray​(int index,
                                             org.codehaus.stax2.typed.TypedArrayDecoder tad)
                                      throws javax.xml.stream.XMLStreamException
        Method that allows reading contents of an attribute as an array of whitespace-separate tokens, decoded using specified decoder.
        Specified by:
        getAttributeAsArray in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Returns:
        Number of tokens decoded, 0 if none found
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsBinary

        public final byte[] getAttributeAsBinary​(int index)
                                          throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsBinary in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeAsBinary

        public final byte[] getAttributeAsBinary​(int index,
                                                 org.codehaus.stax2.typed.Base64Variant v)
                                          throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeAsBinary in interface org.codehaus.stax2.typed.TypedXMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • verifyQName

        protected javax.xml.namespace.QName verifyQName​(javax.xml.namespace.QName n)
                                                 throws org.codehaus.stax2.typed.TypedXMLStreamException
        Throws:
        org.codehaus.stax2.typed.TypedXMLStreamException
      • getFeature

        @Deprecated
        public final java.lang.Object getFeature​(java.lang.String name)
        Deprecated.
        Specified by:
        getFeature in interface org.codehaus.stax2.XMLStreamReader2
      • setFeature

        @Deprecated
        public final void setFeature​(java.lang.String name,
                                     java.lang.Object value)
        Deprecated.
        Specified by:
        setFeature in interface org.codehaus.stax2.XMLStreamReader2
      • isPropertySupported

        public final boolean isPropertySupported​(java.lang.String name)
        Specified by:
        isPropertySupported in interface org.codehaus.stax2.XMLStreamReader2
      • setProperty

        public final boolean setProperty​(java.lang.String name,
                                         java.lang.Object value)
        Specified by:
        setProperty in interface org.codehaus.stax2.XMLStreamReader2
        Parameters:
        name - Name of the property to set
        value - Value to set property to.
        Returns:
        True, if the specified property was succesfully set to specified value; false if its value was not changed
      • skipElement

        public final void skipElement()
                               throws javax.xml.stream.XMLStreamException
        Specified by:
        skipElement in interface org.codehaus.stax2.XMLStreamReader2
        Throws:
        javax.xml.stream.XMLStreamException
      • getAttributeInfo

        public final org.codehaus.stax2.AttributeInfo getAttributeInfo()
                                                                throws javax.xml.stream.XMLStreamException
        Specified by:
        getAttributeInfo in interface org.codehaus.stax2.XMLStreamReader2
        Throws:
        javax.xml.stream.XMLStreamException
      • getDTDInfo

        public final org.codehaus.stax2.DTDInfo getDTDInfo()
                                                    throws javax.xml.stream.XMLStreamException
        Since this class implements DTDInfo, method can just return this.
        Specified by:
        getDTDInfo in interface org.codehaus.stax2.XMLStreamReader2
        Throws:
        javax.xml.stream.XMLStreamException
      • getLocationInfo

        public final org.codehaus.stax2.LocationInfo getLocationInfo()
        Location information is always accessible, for this reader.
        Specified by:
        getLocationInfo in interface org.codehaus.stax2.XMLStreamReader2
      • getText

        public final int getText​(java.io.Writer w,
                                 boolean preserveContents)
                          throws javax.xml.stream.XMLStreamException
        Method similar to getText(), except that it just uses provided Writer to write all textual content. For further optimization, it may also be allowed to do true pass-through, thus possibly avoiding one temporary copy of the data.

        TODO: try to optimize to allow completely streaming pass-through: currently will still read all data in memory buffers before outputting

        Specified by:
        getText in interface org.codehaus.stax2.XMLStreamReader2
        Parameters:
        w - Writer to use for writing textual contents
        preserveContents - If true, reader has to preserve contents so that further calls to getText will return proper conntets. If false, reader is allowed to skip creation of such copies: this can improve performance, but it also means that further calls to getText is not guaranteed to return meaningful data.
        Returns:
        Number of characters written to the reader
        Throws:
        javax.xml.stream.XMLStreamException
      • getDepth

        public final int getDepth()
        Specified by:
        getDepth in interface org.codehaus.stax2.XMLStreamReader2
        Returns:
        Number of open elements in the stack; 0 when parser is in prolog/epilog, 1 inside root element and so on.
      • isEmptyElement

        public final boolean isEmptyElement()
                                     throws javax.xml.stream.XMLStreamException
        Specified by:
        isEmptyElement in interface org.codehaus.stax2.XMLStreamReader2
        Returns:
        True, if cursor points to a start or end element that is constructed from 'empty' element (ends with '/>'); false otherwise.
        Throws:
        javax.xml.stream.XMLStreamException
      • getNonTransientNamespaceContext

        public final javax.xml.namespace.NamespaceContext getNonTransientNamespaceContext()
        Specified by:
        getNonTransientNamespaceContext in interface org.codehaus.stax2.XMLStreamReader2
      • getPrefixedName

        public final java.lang.String getPrefixedName()
        Specified by:
        getPrefixedName in interface org.codehaus.stax2.XMLStreamReader2
      • closeCompletely

        public final void closeCompletely()
                                   throws javax.xml.stream.XMLStreamException
        Specified by:
        closeCompletely in interface org.codehaus.stax2.XMLStreamReader2
        Throws:
        javax.xml.stream.XMLStreamException
      • getProcessedDTD

        public final java.lang.Object getProcessedDTD()

        Note: DTD-handling sub-classes need to override this method.

        Specified by:
        getProcessedDTD in interface org.codehaus.stax2.DTDInfo
      • getDTDRootName

        public final java.lang.String getDTDRootName()
        Specified by:
        getDTDRootName in interface org.codehaus.stax2.DTDInfo
      • getDTDPublicId

        public final java.lang.String getDTDPublicId()
        Specified by:
        getDTDPublicId in interface org.codehaus.stax2.DTDInfo
      • getDTDSystemId

        public final java.lang.String getDTDSystemId()
        Specified by:
        getDTDSystemId in interface org.codehaus.stax2.DTDInfo
      • getDTDInternalSubset

        public final java.lang.String getDTDInternalSubset()
        Specified by:
        getDTDInternalSubset in interface org.codehaus.stax2.DTDInfo
        Returns:
        Internal subset portion of the DOCTYPE declaration, if any; empty String if none
      • getProcessedDTDSchema

        public final org.codehaus.stax2.validation.DTDValidationSchema getProcessedDTDSchema()
        Sub-class will override this method
        Specified by:
        getProcessedDTDSchema in interface org.codehaus.stax2.DTDInfo
      • getStartingByteOffset

        public final long getStartingByteOffset()
        Specified by:
        getStartingByteOffset in interface org.codehaus.stax2.LocationInfo
      • getStartingCharOffset

        public final long getStartingCharOffset()
        Specified by:
        getStartingCharOffset in interface org.codehaus.stax2.LocationInfo
      • getEndingByteOffset

        public final long getEndingByteOffset()
                                       throws javax.xml.stream.XMLStreamException
        Specified by:
        getEndingByteOffset in interface org.codehaus.stax2.LocationInfo
        Throws:
        javax.xml.stream.XMLStreamException
      • getEndingCharOffset

        public final long getEndingCharOffset()
                                       throws javax.xml.stream.XMLStreamException
        Specified by:
        getEndingCharOffset in interface org.codehaus.stax2.LocationInfo
        Throws:
        javax.xml.stream.XMLStreamException
      • getStartLocation

        public final org.codehaus.stax2.XMLStreamLocation2 getStartLocation()
        Specified by:
        getStartLocation in interface org.codehaus.stax2.LocationInfo
      • getEndLocation

        public final org.codehaus.stax2.XMLStreamLocation2 getEndLocation()
                                                                   throws javax.xml.stream.XMLStreamException
        Specified by:
        getEndLocation in interface org.codehaus.stax2.LocationInfo
        Throws:
        javax.xml.stream.XMLStreamException
      • getCurrentLocation

        public final org.codehaus.stax2.XMLStreamLocation2 getCurrentLocation()
        Specified by:
        getCurrentLocation in interface org.codehaus.stax2.LocationInfo
      • findAttributeIndex

        public final int findAttributeIndex​(java.lang.String nsURI,
                                            java.lang.String localName)
        Specified by:
        findAttributeIndex in interface org.codehaus.stax2.AttributeInfo
      • getIdAttributeIndex

        public final int getIdAttributeIndex()
        Specified by:
        getIdAttributeIndex in interface org.codehaus.stax2.AttributeInfo
      • getNotationAttributeIndex

        public final int getNotationAttributeIndex()
        Specified by:
        getNotationAttributeIndex in interface org.codehaus.stax2.AttributeInfo
      • validateAgainst

        public final org.codehaus.stax2.validation.XMLValidator validateAgainst​(org.codehaus.stax2.validation.XMLValidationSchema schema)
                                                                         throws javax.xml.stream.XMLStreamException
        Specified by:
        validateAgainst in interface org.codehaus.stax2.validation.Validatable
        Throws:
        javax.xml.stream.XMLStreamException
      • stopValidatingAgainst

        public final org.codehaus.stax2.validation.XMLValidator stopValidatingAgainst​(org.codehaus.stax2.validation.XMLValidationSchema schema)
                                                                               throws javax.xml.stream.XMLStreamException
        Specified by:
        stopValidatingAgainst in interface org.codehaus.stax2.validation.Validatable
        Throws:
        javax.xml.stream.XMLStreamException
      • stopValidatingAgainst

        public final org.codehaus.stax2.validation.XMLValidator stopValidatingAgainst​(org.codehaus.stax2.validation.XMLValidator validator)
                                                                               throws javax.xml.stream.XMLStreamException
        Specified by:
        stopValidatingAgainst in interface org.codehaus.stax2.validation.Validatable
        Throws:
        javax.xml.stream.XMLStreamException
      • setValidationProblemHandler

        public final org.codehaus.stax2.validation.ValidationProblemHandler setValidationProblemHandler​(org.codehaus.stax2.validation.ValidationProblemHandler h)
        Specified by:
        setValidationProblemHandler in interface org.codehaus.stax2.validation.Validatable
      • _reportNonTextEvent

        protected void _reportNonTextEvent​(int type)
                                    throws javax.xml.stream.XMLStreamException
        Helper method called when getElementText() (et al) method encounters a token type it should not, during text coalescing
        Throws:
        javax.xml.stream.XMLStreamException
      • getLastCharLocation

        protected javax.xml.stream.Location getLastCharLocation()
      • handlePrologEoi

        protected int handlePrologEoi​(boolean isProlog)
                               throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • handleTreeEoi

        protected void handleTreeEoi()
                              throws javax.xml.stream.XMLStreamException
        Method called when hitting an end-of-input within tree, after a valid token
        Throws:
        javax.xml.stream.XMLStreamException
      • throwWfe

        protected void throwWfe​(java.lang.String msg)
                         throws javax.xml.stream.XMLStreamException
        Throws generic parse error with specified message and current parsing location.
        Throws:
        javax.xml.stream.XMLStreamException
      • throwNotTextual

        private void throwNotTextual​(int type)
      • throwNotTextXxx

        private void throwNotTextXxx​(int type)
      • throwFromIOE

        protected void throwFromIOE​(java.io.IOException ioe)
                             throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • throwUnexpectedEOI

        protected void throwUnexpectedEOI​(java.lang.String msg)
                                   throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • _constructUnexpectedInTyped

        protected javax.xml.stream.XMLStreamException _constructUnexpectedInTyped​(int nextToken)
      • _constructTypeException

        private org.codehaus.stax2.typed.TypedXMLStreamException _constructTypeException​(java.lang.IllegalArgumentException iae,
                                                                                         java.lang.String lexicalValue)
        Method called to wrap or convert given conversion-fail exception into a full TypedXMLStreamException.
        Parameters:
        iae - Problem as reported by converter
        lexicalValue - Lexical value (element content, attribute value) that could not be converted succesfully.
      • _constructTypeException

        private org.codehaus.stax2.typed.TypedXMLStreamException _constructTypeException​(java.lang.String msg,
                                                                                         java.lang.String lexicalValue)
      • reportInvalidAttrIndex

        protected void reportInvalidAttrIndex​(int index)
      • _closeScanner

        protected void _closeScanner​(boolean forceStreamClose)
                              throws javax.xml.stream.XMLStreamException
        Method called to close scanner, by asking it to release resource it has, and potentially also close the underlying stream.
        Throws:
        javax.xml.stream.XMLStreamException
      • _decoderFactory

        protected final org.codehaus.stax2.ri.typed.ValueDecoderFactory _decoderFactory()
      • _base64Decoder

        protected org.codehaus.stax2.ri.typed.CharArrayBase64Decoder _base64Decoder()
      • _handleEmptyValue

        private void _handleEmptyValue​(org.codehaus.stax2.typed.TypedValueDecoder dec)
                                throws javax.xml.stream.XMLStreamException
        Method called to handle value that has empty String as representation. This will usually either lead to an exception, or parsing to the default value for the type in question (null for nullable types and so on).
        Throws:
        javax.xml.stream.XMLStreamException
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class java.lang.Object