Class XOPDecodingStreamReader

  • All Implemented Interfaces:
    XMLStreamConstants, XMLStreamReader, org.apache.axiom.ext.stax.datahandler.DataHandlerReader

    public class XOPDecodingStreamReader
    extends org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
    implements org.apache.axiom.ext.stax.datahandler.DataHandlerReader
    XMLStreamReader wrapper that decodes XOP. It uses the extension defined by DataHandlerReader to expose the DataHandler objects referenced by xop:Include elements encountered in the underlying stream. If the consumer uses getText(), getTextCharacters(), getTextCharacters(int, char[], int, int) or getElementText() when an xop:Include element is present in the underlying stream, then the decoder will produce a base64 representation of the data.

    Note that this class only implements infoset transformation, but doesn't handle MIME processing. A MimePartProvider implementation must be provided to the constructor of this class. This object will be used to load MIME parts referenced by xop:Include elements encountered in the underlying stream.

    This class supports deferred loading of MIME parts: If the consumer uses DataHandlerReader.getDataHandlerProvider(), then the MimePartProvider will only be invoked when DataHandlerProvider.getDataHandler() is called.

    • Constructor Detail

      • XOPDecodingStreamReader

        public XOPDecodingStreamReader​(XMLStreamReader parent,
                                       MimePartProvider mimePartProvider)
        Constructor.
        Parameters:
        parent - the XML stream to decode
        mimePartProvider - An implementation of the MimePartProvider interface that will be used to load the DataHandler objects for MIME parts referenced by xop:Include element information items encountered in the underlying stream.
    • Method Detail

      • getEventType

        public int getEventType()
        Specified by:
        getEventType in interface XMLStreamReader
        Overrides:
        getEventType in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • getPrefix

        public String getPrefix()
        Specified by:
        getPrefix in interface XMLStreamReader
        Overrides:
        getPrefix in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • getNamespaceURI

        public String getNamespaceURI()
        Specified by:
        getNamespaceURI in interface XMLStreamReader
        Overrides:
        getNamespaceURI in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • getLocalName

        public String getLocalName()
        Specified by:
        getLocalName in interface XMLStreamReader
        Overrides:
        getLocalName in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • getName

        public QName getName()
        Specified by:
        getName in interface XMLStreamReader
        Overrides:
        getName in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • getLocation

        public Location getLocation()
        Specified by:
        getLocation in interface XMLStreamReader
        Overrides:
        getLocation in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • getNamespaceURI

        public String getNamespaceURI​(String prefix)
        Specified by:
        getNamespaceURI in interface XMLStreamReader
        Overrides:
        getNamespaceURI in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • getNamespaceCount

        public int getNamespaceCount()
        Specified by:
        getNamespaceCount in interface XMLStreamReader
        Overrides:
        getNamespaceCount in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • getNamespacePrefix

        public String getNamespacePrefix​(int index)
        Specified by:
        getNamespacePrefix in interface XMLStreamReader
        Overrides:
        getNamespacePrefix in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • getNamespaceURI

        public String getNamespaceURI​(int index)
        Specified by:
        getNamespaceURI in interface XMLStreamReader
        Overrides:
        getNamespaceURI in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • getText

        public String getText()
        Specified by:
        getText in interface XMLStreamReader
        Overrides:
        getText in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • getTextCharacters

        public char[] getTextCharacters()
        Specified by:
        getTextCharacters in interface XMLStreamReader
        Overrides:
        getTextCharacters in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • getTextLength

        public int getTextLength()
        Specified by:
        getTextLength in interface XMLStreamReader
        Overrides:
        getTextLength in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • getTextStart

        public int getTextStart()
        Specified by:
        getTextStart in interface XMLStreamReader
        Overrides:
        getTextStart in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • hasText

        public boolean hasText()
        Specified by:
        hasText in interface XMLStreamReader
        Overrides:
        hasText in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • isCharacters

        public boolean isCharacters()
        Specified by:
        isCharacters in interface XMLStreamReader
        Overrides:
        isCharacters in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • isStartElement

        public boolean isStartElement()
        Specified by:
        isStartElement in interface XMLStreamReader
        Overrides:
        isStartElement in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • isEndElement

        public boolean isEndElement()
        Specified by:
        isEndElement in interface XMLStreamReader
        Overrides:
        isEndElement in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • hasName

        public boolean hasName()
        Specified by:
        hasName in interface XMLStreamReader
        Overrides:
        hasName in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • isWhiteSpace

        public boolean isWhiteSpace()
        Specified by:
        isWhiteSpace in interface XMLStreamReader
        Overrides:
        isWhiteSpace in class org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper
      • isBinary

        public boolean isBinary()
        Specified by:
        isBinary in interface org.apache.axiom.ext.stax.datahandler.DataHandlerReader
      • isOptimized

        public boolean isOptimized()
        Specified by:
        isOptimized in interface org.apache.axiom.ext.stax.datahandler.DataHandlerReader
      • isDeferred

        public boolean isDeferred()
        Specified by:
        isDeferred in interface org.apache.axiom.ext.stax.datahandler.DataHandlerReader
      • getContentID

        public String getContentID()
        Specified by:
        getContentID in interface org.apache.axiom.ext.stax.datahandler.DataHandlerReader
      • getDataHandlerProvider

        public org.apache.axiom.ext.stax.datahandler.DataHandlerProvider getDataHandlerProvider()
        Specified by:
        getDataHandlerProvider in interface org.apache.axiom.ext.stax.datahandler.DataHandlerReader