Class StreamReaderBufferProcessor

  • All Implemented Interfaces:
    javax.xml.stream.XMLStreamConstants, javax.xml.stream.XMLStreamReader, org.jvnet.staxex.XMLStreamReaderEx

    public class StreamReaderBufferProcessor
    extends AbstractProcessor
    implements org.jvnet.staxex.XMLStreamReaderEx
    A processor of a XMLStreamBuffer that reads the XML infoset as XMLStreamReader.

    Because of XMLStreamReader design, this processor always produce a full document infoset, even if the buffer just contains a fragment.

    When XMLStreamBuffer contains a multiple tree (AKA "forest"), XMLStreamReader will behave as if there are multiple root elements (so you'll see XMLStreamConstants.START_ELEMENT event where you'd normally expect XMLStreamConstants.END_DOCUMENT.)

    Author:
    Paul.Sandoz@Sun.Com, K.Venugopal@sun.com
    • Field Detail

      • _stack

        protected com.sun.xml.stream.buffer.stax.StreamReaderBufferProcessor.ElementStackEntry[] _stack
      • _stackTop

        protected com.sun.xml.stream.buffer.stax.StreamReaderBufferProcessor.ElementStackEntry _stackTop
        The top-most active entry of the _stack.
      • _depth

        protected int _depth
        The element depth that we are in. Used to determine when we are done with a tree.
      • _namespaceAIIsPrefix

        protected java.lang.String[] _namespaceAIIsPrefix
        Namespace prefixes. Can be empty but not null.
      • _namespaceAIIsNamespaceName

        protected java.lang.String[] _namespaceAIIsNamespaceName
      • _namespaceAIIsEnd

        protected int _namespaceAIIsEnd
      • _nsCtx

        protected com.sun.xml.stream.buffer.stax.StreamReaderBufferProcessor.InternalNamespaceContext _nsCtx
      • _eventType

        protected int _eventType
      • _attributeCache

        protected AttributesHolder _attributeCache
        Holder of the attributes. Be careful that this follows the SAX convention of using "" instead of null.
      • _charSequence

        protected java.lang.CharSequence _charSequence
      • _characters

        protected char[] _characters
      • _textOffset

        protected int _textOffset
      • _textLen

        protected int _textLen
      • _piTarget

        protected java.lang.String _piTarget
      • _piData

        protected java.lang.String _piData
    • Constructor Detail

      • StreamReaderBufferProcessor

        public StreamReaderBufferProcessor()
      • StreamReaderBufferProcessor

        public StreamReaderBufferProcessor​(XMLStreamBuffer buffer)
                                    throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
    • Method Detail

      • setXMLStreamBuffer

        public void setXMLStreamBuffer​(XMLStreamBuffer buffer)
                                throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • nextTagAndMark

        public XMLStreamBuffer nextTagAndMark()
                                       throws javax.xml.stream.XMLStreamException
        Does nextTag() and if the parser moved to a new start tag, returns a XMLStreamBufferMark that captures the infoset starting from the newly discovered element.

        (Ideally we should have a method that works against the current position, but the way the data structure is read makes this somewhat difficult.) This creates a new XMLStreamBufferMark that shares the underlying data storage, thus it's fairly efficient.

        Throws:
        javax.xml.stream.XMLStreamException
      • getProperty

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

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

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

        public final java.lang.String getElementTextTrim()
                                                  throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementTextTrim in interface org.jvnet.staxex.XMLStreamReaderEx
        Throws:
        javax.xml.stream.XMLStreamException
      • getElementText

        public final java.lang.String getElementText()
                                              throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementText in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getElementText

        public final java.lang.String getElementText​(boolean startElementRead)
                                              throws javax.xml.stream.XMLStreamException
        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
      • nextTag

        public final int nextTag​(boolean currentTagRead)
                          throws javax.xml.stream.XMLStreamException
        Throws:
        javax.xml.stream.XMLStreamException
      • hasNext

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

        public void close()
                   throws javax.xml.stream.XMLStreamException
        Specified by:
        close in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • isStartElement

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

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

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

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

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

        public final int getAttributeCount()
        Specified by:
        getAttributeCount 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
      • getAttributeLocalName

        public final java.lang.String getAttributeLocalName​(int index)
        Specified by:
        getAttributeLocalName 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
      • isAttributeSpecified

        public final boolean isAttributeSpecified​(int index)
        Specified by:
        isAttributeSpecified 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​(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
      • getNamespaceContext

        public final org.jvnet.staxex.NamespaceContextEx getNamespaceContext()
        Specified by:
        getNamespaceContext in interface javax.xml.stream.XMLStreamReader
        Specified by:
        getNamespaceContext in interface org.jvnet.staxex.XMLStreamReaderEx
      • getEventType

        public final int getEventType()
        Specified by:
        getEventType 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
      • getTextStart

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

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

        public final int getTextCharacters​(int sourceStart,
                                           char[] target,
                                           int targetStart,
                                           int length)
                                    throws javax.xml.stream.XMLStreamException
        Specified by:
        getTextCharacters in interface javax.xml.stream.XMLStreamReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getPCDATA

        public final java.lang.CharSequence getPCDATA()
        Specified by:
        getPCDATA in interface org.jvnet.staxex.XMLStreamReaderEx
      • getEncoding

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

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

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

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

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

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

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

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

        public final 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
      • getCharacterEncodingScheme

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

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

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

        protected void processElement​(java.lang.String prefix,
                                      java.lang.String uri,
                                      java.lang.String localName,
                                      boolean inscope)