public class XOPEncodingStreamReader extends XOPEncodingStreamWrapper implements XMLStreamReader
XMLStreamReader
wrapper that encodes XOP. It assumes that the underlying reader
implements the extension defined by DataHandlerReader
so that it can identify the
information items to optimize (by looking for
XMLStreamConstants.CHARACTERS
events for which
DataHandlerReader.isBinary()
returns true
). The DataHandler
objects for the parts referenced by xop:Include element information items produced by
an instance of this class can be retrieved using the XOPEncodingStreamWrapper.getDataHandler(String)
method.
Note that the primary purpose of this class is not to serialize an XML infoset to an XOP package
(this is better done using XOPEncodingStreamWriter
), but rather to optimize interaction
(by exchanging DataHandler
objects instead of base64 encoded representations) with
databinding frameworks that understand XOP, but that are not aware of the
DataHandlerReader
extension.
This class defers loading of DataHandler
objects until XOPEncodingStreamWrapper.getDataHandler(String)
is
called, except if this is not supported by the underlying stream.
ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT
Constructor and Description |
---|
XOPEncodingStreamReader(XMLStreamReader parent,
ContentIDGenerator contentIDGenerator,
OptimizationPolicy optimizationPolicy)
Constructor.
|
getContentIDs, getDataHandler, isLoaded, processDataHandler, processDataHandler
public XOPEncodingStreamReader(XMLStreamReader parent, ContentIDGenerator contentIDGenerator, OptimizationPolicy optimizationPolicy)
parent
- The XML stream to encode. The reader must implement the extension defined by
DataHandlerReader
.contentIDGenerator
- used to generate content IDs for the binary content exposed as
xop:Include element information itemsoptimizationPolicy
- the policy to apply to decide which binary content to optimizeIllegalArgumentException
- if the provided XMLStreamReader
doesn't implement the extension defined
by DataHandlerReader
public int next() throws XMLStreamException
next
in interface XMLStreamReader
XMLStreamException
public boolean hasNext() throws XMLStreamException
hasNext
in interface XMLStreamReader
XMLStreamException
public int nextTag() throws XMLStreamException
nextTag
in interface XMLStreamReader
XMLStreamException
public void require(int type, String namespaceURI, String localName) throws XMLStreamException
require
in interface XMLStreamReader
XMLStreamException
public Location getLocation()
getLocation
in interface XMLStreamReader
public void close() throws XMLStreamException
close
in interface XMLStreamReader
XMLStreamException
public Object getProperty(String name) throws IllegalArgumentException
getProperty
in interface XMLStreamReader
IllegalArgumentException
public String getEncoding()
getEncoding
in interface XMLStreamReader
public String getCharacterEncodingScheme()
getCharacterEncodingScheme
in interface XMLStreamReader
public String getVersion()
getVersion
in interface XMLStreamReader
public boolean isStandalone()
isStandalone
in interface XMLStreamReader
public boolean standaloneSet()
standaloneSet
in interface XMLStreamReader
public String getPIData()
getPIData
in interface XMLStreamReader
public String getPITarget()
getPITarget
in interface XMLStreamReader
public int getAttributeCount()
getAttributeCount
in interface XMLStreamReader
public String getAttributeLocalName(int index)
getAttributeLocalName
in interface XMLStreamReader
public QName getAttributeName(int index)
getAttributeName
in interface XMLStreamReader
public String getAttributeNamespace(int index)
getAttributeNamespace
in interface XMLStreamReader
public String getAttributePrefix(int index)
getAttributePrefix
in interface XMLStreamReader
public String getAttributeType(int index)
getAttributeType
in interface XMLStreamReader
public String getAttributeValue(int index)
getAttributeValue
in interface XMLStreamReader
public boolean isAttributeSpecified(int index)
isAttributeSpecified
in interface XMLStreamReader
public String getAttributeValue(String namespaceURI, String localName)
getAttributeValue
in interface XMLStreamReader
public String getElementText() throws XMLStreamException
getElementText
in interface XMLStreamReader
XMLStreamException
public int getEventType()
getEventType
in interface XMLStreamReader
public String getNamespaceURI()
getNamespaceURI
in interface XMLStreamReader
public String getLocalName()
getLocalName
in interface XMLStreamReader
public String getPrefix()
getPrefix
in interface XMLStreamReader
public QName getName()
getName
in interface XMLStreamReader
public NamespaceContext getNamespaceContext()
getNamespaceContext
in interface XMLStreamReader
public String getNamespaceURI(String prefix)
getNamespaceURI
in interface XMLStreamReader
public int getNamespaceCount()
getNamespaceCount
in interface XMLStreamReader
public String getNamespacePrefix(int index)
getNamespacePrefix
in interface XMLStreamReader
public String getNamespaceURI(int index)
getNamespaceURI
in interface XMLStreamReader
public String getText()
getText
in interface XMLStreamReader
public int getTextStart()
getTextStart
in interface XMLStreamReader
public int getTextLength()
getTextLength
in interface XMLStreamReader
public char[] getTextCharacters()
getTextCharacters
in interface XMLStreamReader
public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length) throws XMLStreamException
getTextCharacters
in interface XMLStreamReader
XMLStreamException
public boolean hasName()
hasName
in interface XMLStreamReader
public boolean hasText()
hasText
in interface XMLStreamReader
public boolean isCharacters()
isCharacters
in interface XMLStreamReader
public boolean isWhiteSpace()
isWhiteSpace
in interface XMLStreamReader
public boolean isStartElement()
isStartElement
in interface XMLStreamReader
public boolean isEndElement()
isEndElement
in interface XMLStreamReader
Copyright © 2004–2018 The Apache Software Foundation. All rights reserved.