Package org.apache.axiom.util.stax.xop
Class XOPEncodingStreamReader
- java.lang.Object
-
- org.apache.axiom.util.stax.xop.XOPEncodingStreamWrapper
-
- org.apache.axiom.util.stax.xop.XOPEncodingStreamReader
-
- All Implemented Interfaces:
XMLStreamConstants
,XMLStreamReader
,MimePartProvider
public class XOPEncodingStreamReader extends XOPEncodingStreamWrapper implements XMLStreamReader
XMLStreamReader
wrapper that encodes XOP. It assumes that the underlying reader implements the extension defined byDataHandlerReader
so that it can identify the information items to optimize (by looking forXMLStreamConstants.CHARACTERS
events for whichDataHandlerReader.isBinary()
returnstrue
). TheDataHandler
objects for the parts referenced byxop:Include
element information items produced by an instance of this class can be retrieved using theXOPEncodingStreamWrapper.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 exchangingDataHandler
objects instead of base64 encoded representations) with databinding frameworks that understand XOP, but that are not aware of theDataHandlerReader
extension.This class defers loading of
DataHandler
objects untilXOPEncodingStreamWrapper.getDataHandler(String)
is called, except if this is not supported by the underlying stream.
-
-
Field Summary
-
Fields inherited from interface javax.xml.stream.XMLStreamConstants
ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT
-
-
Constructor Summary
Constructors Constructor Description XOPEncodingStreamReader(XMLStreamReader parent, ContentIDGenerator contentIDGenerator, OptimizationPolicy optimizationPolicy)
Constructor.
-
Method Summary
-
Methods inherited from class org.apache.axiom.util.stax.xop.XOPEncodingStreamWrapper
getContentIDs, getDataHandler, processDataHandler, processDataHandler
-
-
-
-
Constructor Detail
-
XOPEncodingStreamReader
public XOPEncodingStreamReader(XMLStreamReader parent, ContentIDGenerator contentIDGenerator, OptimizationPolicy optimizationPolicy)
Constructor.- Parameters:
parent
- The XML stream to encode. The reader must implement the extension defined byDataHandlerReader
.contentIDGenerator
- used to generate content IDs for the binary content exposed asxop:Include
element information itemsoptimizationPolicy
- the policy to apply to decide which binary content to optimize- Throws:
IllegalArgumentException
- if the providedXMLStreamReader
doesn't implement the extension defined byDataHandlerReader
-
-
Method Detail
-
next
public int next() throws XMLStreamException
- Specified by:
next
in interfaceXMLStreamReader
- Throws:
XMLStreamException
-
hasNext
public boolean hasNext() throws XMLStreamException
- Specified by:
hasNext
in interfaceXMLStreamReader
- Throws:
XMLStreamException
-
nextTag
public int nextTag() throws XMLStreamException
- Specified by:
nextTag
in interfaceXMLStreamReader
- Throws:
XMLStreamException
-
require
public void require(int type, String namespaceURI, String localName) throws XMLStreamException
- Specified by:
require
in interfaceXMLStreamReader
- Throws:
XMLStreamException
-
getLocation
public Location getLocation()
- Specified by:
getLocation
in interfaceXMLStreamReader
-
close
public void close() throws XMLStreamException
- Specified by:
close
in interfaceXMLStreamReader
- Throws:
XMLStreamException
-
getProperty
public Object getProperty(String name) throws IllegalArgumentException
- Specified by:
getProperty
in interfaceXMLStreamReader
- Throws:
IllegalArgumentException
-
getEncoding
public String getEncoding()
- Specified by:
getEncoding
in interfaceXMLStreamReader
-
getCharacterEncodingScheme
public String getCharacterEncodingScheme()
- Specified by:
getCharacterEncodingScheme
in interfaceXMLStreamReader
-
getVersion
public String getVersion()
- Specified by:
getVersion
in interfaceXMLStreamReader
-
isStandalone
public boolean isStandalone()
- Specified by:
isStandalone
in interfaceXMLStreamReader
-
standaloneSet
public boolean standaloneSet()
- Specified by:
standaloneSet
in interfaceXMLStreamReader
-
getPIData
public String getPIData()
- Specified by:
getPIData
in interfaceXMLStreamReader
-
getPITarget
public String getPITarget()
- Specified by:
getPITarget
in interfaceXMLStreamReader
-
getAttributeCount
public int getAttributeCount()
- Specified by:
getAttributeCount
in interfaceXMLStreamReader
-
getAttributeLocalName
public String getAttributeLocalName(int index)
- Specified by:
getAttributeLocalName
in interfaceXMLStreamReader
-
getAttributeName
public QName getAttributeName(int index)
- Specified by:
getAttributeName
in interfaceXMLStreamReader
-
getAttributeNamespace
public String getAttributeNamespace(int index)
- Specified by:
getAttributeNamespace
in interfaceXMLStreamReader
-
getAttributePrefix
public String getAttributePrefix(int index)
- Specified by:
getAttributePrefix
in interfaceXMLStreamReader
-
getAttributeType
public String getAttributeType(int index)
- Specified by:
getAttributeType
in interfaceXMLStreamReader
-
getAttributeValue
public String getAttributeValue(int index)
- Specified by:
getAttributeValue
in interfaceXMLStreamReader
-
isAttributeSpecified
public boolean isAttributeSpecified(int index)
- Specified by:
isAttributeSpecified
in interfaceXMLStreamReader
-
getAttributeValue
public String getAttributeValue(String namespaceURI, String localName)
- Specified by:
getAttributeValue
in interfaceXMLStreamReader
-
getElementText
public String getElementText() throws XMLStreamException
- Specified by:
getElementText
in interfaceXMLStreamReader
- Throws:
XMLStreamException
-
getEventType
public int getEventType()
- Specified by:
getEventType
in interfaceXMLStreamReader
-
getNamespaceURI
public String getNamespaceURI()
- Specified by:
getNamespaceURI
in interfaceXMLStreamReader
-
getLocalName
public String getLocalName()
- Specified by:
getLocalName
in interfaceXMLStreamReader
-
getPrefix
public String getPrefix()
- Specified by:
getPrefix
in interfaceXMLStreamReader
-
getName
public QName getName()
- Specified by:
getName
in interfaceXMLStreamReader
-
getNamespaceContext
public NamespaceContext getNamespaceContext()
- Specified by:
getNamespaceContext
in interfaceXMLStreamReader
-
getNamespaceURI
public String getNamespaceURI(String prefix)
- Specified by:
getNamespaceURI
in interfaceXMLStreamReader
-
getNamespaceCount
public int getNamespaceCount()
- Specified by:
getNamespaceCount
in interfaceXMLStreamReader
-
getNamespacePrefix
public String getNamespacePrefix(int index)
- Specified by:
getNamespacePrefix
in interfaceXMLStreamReader
-
getNamespaceURI
public String getNamespaceURI(int index)
- Specified by:
getNamespaceURI
in interfaceXMLStreamReader
-
getText
public String getText()
- Specified by:
getText
in interfaceXMLStreamReader
-
getTextStart
public int getTextStart()
- Specified by:
getTextStart
in interfaceXMLStreamReader
-
getTextLength
public int getTextLength()
- Specified by:
getTextLength
in interfaceXMLStreamReader
-
getTextCharacters
public char[] getTextCharacters()
- Specified by:
getTextCharacters
in interfaceXMLStreamReader
-
getTextCharacters
public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length) throws XMLStreamException
- Specified by:
getTextCharacters
in interfaceXMLStreamReader
- Throws:
XMLStreamException
-
hasName
public boolean hasName()
- Specified by:
hasName
in interfaceXMLStreamReader
-
hasText
public boolean hasText()
- Specified by:
hasText
in interfaceXMLStreamReader
-
isCharacters
public boolean isCharacters()
- Specified by:
isCharacters
in interfaceXMLStreamReader
-
isWhiteSpace
public boolean isWhiteSpace()
- Specified by:
isWhiteSpace
in interfaceXMLStreamReader
-
isStartElement
public boolean isStartElement()
- Specified by:
isStartElement
in interfaceXMLStreamReader
-
isEndElement
public boolean isEndElement()
- Specified by:
isEndElement
in interfaceXMLStreamReader
-
-