public class XOPEncodingStreamReader extends XOPEncodingStreamWrapper implements javax.xml.stream.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(javax.xml.stream.XMLStreamReader parent,
ContentIDGenerator contentIDGenerator,
OptimizationPolicy optimizationPolicy)
Constructor.
|
getContentIDs, getDataHandler, isLoaded, processDataHandler, processDataHandler
public XOPEncodingStreamReader(javax.xml.stream.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 javax.xml.stream.XMLStreamException
next
in interface javax.xml.stream.XMLStreamReader
javax.xml.stream.XMLStreamException
public boolean hasNext() throws javax.xml.stream.XMLStreamException
hasNext
in interface javax.xml.stream.XMLStreamReader
javax.xml.stream.XMLStreamException
public int nextTag() throws javax.xml.stream.XMLStreamException
nextTag
in interface javax.xml.stream.XMLStreamReader
javax.xml.stream.XMLStreamException
public void require(int type, String namespaceURI, String localName) throws javax.xml.stream.XMLStreamException
require
in interface javax.xml.stream.XMLStreamReader
javax.xml.stream.XMLStreamException
public javax.xml.stream.Location getLocation()
getLocation
in interface javax.xml.stream.XMLStreamReader
public void close() throws javax.xml.stream.XMLStreamException
close
in interface javax.xml.stream.XMLStreamReader
javax.xml.stream.XMLStreamException
public Object getProperty(String name) throws IllegalArgumentException
getProperty
in interface javax.xml.stream.XMLStreamReader
IllegalArgumentException
public String getEncoding()
getEncoding
in interface javax.xml.stream.XMLStreamReader
public String getCharacterEncodingScheme()
getCharacterEncodingScheme
in interface javax.xml.stream.XMLStreamReader
public String getVersion()
getVersion
in interface javax.xml.stream.XMLStreamReader
public boolean isStandalone()
isStandalone
in interface javax.xml.stream.XMLStreamReader
public boolean standaloneSet()
standaloneSet
in interface javax.xml.stream.XMLStreamReader
public String getPIData()
getPIData
in interface javax.xml.stream.XMLStreamReader
public String getPITarget()
getPITarget
in interface javax.xml.stream.XMLStreamReader
public int getAttributeCount()
getAttributeCount
in interface javax.xml.stream.XMLStreamReader
public String getAttributeLocalName(int index)
getAttributeLocalName
in interface javax.xml.stream.XMLStreamReader
public QName getAttributeName(int index)
getAttributeName
in interface javax.xml.stream.XMLStreamReader
public String getAttributeNamespace(int index)
getAttributeNamespace
in interface javax.xml.stream.XMLStreamReader
public String getAttributePrefix(int index)
getAttributePrefix
in interface javax.xml.stream.XMLStreamReader
public String getAttributeType(int index)
getAttributeType
in interface javax.xml.stream.XMLStreamReader
public String getAttributeValue(int index)
getAttributeValue
in interface javax.xml.stream.XMLStreamReader
public boolean isAttributeSpecified(int index)
isAttributeSpecified
in interface javax.xml.stream.XMLStreamReader
public String getAttributeValue(String namespaceURI, String localName)
getAttributeValue
in interface javax.xml.stream.XMLStreamReader
public String getElementText() throws javax.xml.stream.XMLStreamException
getElementText
in interface javax.xml.stream.XMLStreamReader
javax.xml.stream.XMLStreamException
public int getEventType()
getEventType
in interface javax.xml.stream.XMLStreamReader
public String getNamespaceURI()
getNamespaceURI
in interface javax.xml.stream.XMLStreamReader
public String getLocalName()
getLocalName
in interface javax.xml.stream.XMLStreamReader
public String getPrefix()
getPrefix
in interface javax.xml.stream.XMLStreamReader
public QName getName()
getName
in interface javax.xml.stream.XMLStreamReader
public NamespaceContext getNamespaceContext()
getNamespaceContext
in interface javax.xml.stream.XMLStreamReader
public String getNamespaceURI(String prefix)
getNamespaceURI
in interface javax.xml.stream.XMLStreamReader
public int getNamespaceCount()
getNamespaceCount
in interface javax.xml.stream.XMLStreamReader
public String getNamespacePrefix(int index)
getNamespacePrefix
in interface javax.xml.stream.XMLStreamReader
public String getNamespaceURI(int index)
getNamespaceURI
in interface javax.xml.stream.XMLStreamReader
public String getText()
getText
in interface javax.xml.stream.XMLStreamReader
public int getTextStart()
getTextStart
in interface javax.xml.stream.XMLStreamReader
public int getTextLength()
getTextLength
in interface javax.xml.stream.XMLStreamReader
public char[] getTextCharacters()
getTextCharacters
in interface javax.xml.stream.XMLStreamReader
public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length) throws javax.xml.stream.XMLStreamException
getTextCharacters
in interface javax.xml.stream.XMLStreamReader
javax.xml.stream.XMLStreamException
public boolean hasName()
hasName
in interface javax.xml.stream.XMLStreamReader
public boolean hasText()
hasText
in interface javax.xml.stream.XMLStreamReader
public boolean isCharacters()
isCharacters
in interface javax.xml.stream.XMLStreamReader
public boolean isWhiteSpace()
isWhiteSpace
in interface javax.xml.stream.XMLStreamReader
public boolean isStartElement()
isStartElement
in interface javax.xml.stream.XMLStreamReader
public boolean isEndElement()
isEndElement
in interface javax.xml.stream.XMLStreamReader
Copyright © 2004-2013 The Apache Software Foundation. All Rights Reserved.