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 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.
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 |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
XOPEncodingStreamReader
public XOPEncodingStreamReader(XMLStreamReader parent,
ContentIDGenerator contentIDGenerator,
OptimizationPolicy optimizationPolicy)
- Constructor.
- Parameters:
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 optimize
- Throws:
IllegalArgumentException
- if the provided XMLStreamReader
doesn't implement the extension defined
by DataHandlerReader
next
public int next()
throws XMLStreamException
- Specified by:
next
in interface XMLStreamReader
- Throws:
XMLStreamException
hasNext
public boolean hasNext()
throws XMLStreamException
- Specified by:
hasNext
in interface XMLStreamReader
- Throws:
XMLStreamException
nextTag
public int nextTag()
throws XMLStreamException
- Specified by:
nextTag
in interface XMLStreamReader
- Throws:
XMLStreamException
require
public void require(int type,
String namespaceURI,
String localName)
throws XMLStreamException
- Specified by:
require
in interface XMLStreamReader
- Throws:
XMLStreamException
getLocation
public Location getLocation()
- Specified by:
getLocation
in interface XMLStreamReader
close
public void close()
throws XMLStreamException
- Specified by:
close
in interface XMLStreamReader
- Throws:
XMLStreamException
getProperty
public Object getProperty(String name)
throws IllegalArgumentException
- Specified by:
getProperty
in interface XMLStreamReader
- Throws:
IllegalArgumentException
getEncoding
public String getEncoding()
- Specified by:
getEncoding
in interface XMLStreamReader
getCharacterEncodingScheme
public String getCharacterEncodingScheme()
- Specified by:
getCharacterEncodingScheme
in interface XMLStreamReader
getVersion
public String getVersion()
- Specified by:
getVersion
in interface XMLStreamReader
isStandalone
public boolean isStandalone()
- Specified by:
isStandalone
in interface XMLStreamReader
standaloneSet
public boolean standaloneSet()
- Specified by:
standaloneSet
in interface XMLStreamReader
getPIData
public String getPIData()
- Specified by:
getPIData
in interface XMLStreamReader
getPITarget
public String getPITarget()
- Specified by:
getPITarget
in interface XMLStreamReader
getAttributeCount
public int getAttributeCount()
- Specified by:
getAttributeCount
in interface XMLStreamReader
getAttributeLocalName
public String getAttributeLocalName(int index)
- Specified by:
getAttributeLocalName
in interface XMLStreamReader
getAttributeName
public QName getAttributeName(int index)
- Specified by:
getAttributeName
in interface XMLStreamReader
getAttributeNamespace
public String getAttributeNamespace(int index)
- Specified by:
getAttributeNamespace
in interface XMLStreamReader
getAttributePrefix
public String getAttributePrefix(int index)
- Specified by:
getAttributePrefix
in interface XMLStreamReader
getAttributeType
public String getAttributeType(int index)
- Specified by:
getAttributeType
in interface XMLStreamReader
getAttributeValue
public String getAttributeValue(int index)
- Specified by:
getAttributeValue
in interface XMLStreamReader
isAttributeSpecified
public boolean isAttributeSpecified(int index)
- Specified by:
isAttributeSpecified
in interface XMLStreamReader
getAttributeValue
public String getAttributeValue(String namespaceURI,
String localName)
- Specified by:
getAttributeValue
in interface XMLStreamReader
getElementText
public String getElementText()
throws XMLStreamException
- Specified by:
getElementText
in interface XMLStreamReader
- Throws:
XMLStreamException
getEventType
public int getEventType()
- Specified by:
getEventType
in interface XMLStreamReader
getNamespaceURI
public String getNamespaceURI()
- Specified by:
getNamespaceURI
in interface XMLStreamReader
getLocalName
public String getLocalName()
- Specified by:
getLocalName
in interface XMLStreamReader
getPrefix
public String getPrefix()
- Specified by:
getPrefix
in interface XMLStreamReader
getName
public QName getName()
- Specified by:
getName
in interface XMLStreamReader
getNamespaceContext
public NamespaceContext getNamespaceContext()
- Specified by:
getNamespaceContext
in interface XMLStreamReader
getNamespaceURI
public String getNamespaceURI(String prefix)
- Specified by:
getNamespaceURI
in interface XMLStreamReader
getNamespaceCount
public int getNamespaceCount()
- Specified by:
getNamespaceCount
in interface XMLStreamReader
getNamespacePrefix
public String getNamespacePrefix(int index)
- Specified by:
getNamespacePrefix
in interface XMLStreamReader
getNamespaceURI
public String getNamespaceURI(int index)
- Specified by:
getNamespaceURI
in interface XMLStreamReader
getText
public String getText()
- Specified by:
getText
in interface XMLStreamReader
getTextStart
public int getTextStart()
- Specified by:
getTextStart
in interface XMLStreamReader
getTextLength
public int getTextLength()
- Specified by:
getTextLength
in interface XMLStreamReader
getTextCharacters
public char[] getTextCharacters()
- Specified by:
getTextCharacters
in interface XMLStreamReader
getTextCharacters
public int getTextCharacters(int sourceStart,
char[] target,
int targetStart,
int length)
throws XMLStreamException
- Specified by:
getTextCharacters
in interface XMLStreamReader
- Throws:
XMLStreamException
hasName
public boolean hasName()
- Specified by:
hasName
in interface XMLStreamReader
hasText
public boolean hasText()
- Specified by:
hasText
in interface XMLStreamReader
isCharacters
public boolean isCharacters()
- Specified by:
isCharacters
in interface XMLStreamReader
isWhiteSpace
public boolean isWhiteSpace()
- Specified by:
isWhiteSpace
in interface XMLStreamReader
isStartElement
public boolean isStartElement()
- Specified by:
isStartElement
in interface XMLStreamReader
isEndElement
public boolean isEndElement()
- Specified by:
isEndElement
in interface XMLStreamReader
Copyright © 2004-2013 The Apache Software Foundation. All Rights Reserved.