Package com.sun.xml.stream.buffer.stax
Class StreamReaderBufferProcessor
- java.lang.Object
-
- com.sun.xml.stream.buffer.AbstractCreatorProcessor
-
- com.sun.xml.stream.buffer.AbstractProcessor
-
- com.sun.xml.stream.buffer.stax.StreamReaderBufferProcessor
-
- All Implemented Interfaces:
javax.xml.stream.XMLStreamConstants,javax.xml.stream.XMLStreamReader,org.jvnet.staxex.XMLStreamReaderEx
public class StreamReaderBufferProcessor extends AbstractProcessor implements org.jvnet.staxex.XMLStreamReaderEx
A processor of aXMLStreamBufferthat reads the XML infoset asXMLStreamReader.Because of
XMLStreamReaderdesign, this processor always produce a full document infoset, even if the buffer just contains a fragment.When
XMLStreamBuffercontains a multiple tree (AKA "forest"),XMLStreamReaderwill behave as if there are multiple root elements (so you'll seeXMLStreamConstants.START_ELEMENTevent where you'd normally expectXMLStreamConstants.END_DOCUMENT.)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classStreamReaderBufferProcessor.CharSequenceImplprivate classStreamReaderBufferProcessor.DummyLocationprivate classStreamReaderBufferProcessor.ElementStackEntryprivate classStreamReaderBufferProcessor.InternalNamespaceContext
-
Field Summary
Fields Modifier and Type Field Description protected AttributesHolder_attributeCacheHolder of the attributes.protected char[]_charactersprotected java.lang.CharSequence_charSequenceprivate int_completionStateTrue if processing is complete.protected int_depthThe element depth that we are in.protected int_eventTypeprotected int_namespaceAIIsEndprotected java.lang.String[]_namespaceAIIsNamespaceNameprotected java.lang.String[]_namespaceAIIsPrefixNamespace prefixes.protected StreamReaderBufferProcessor.InternalNamespaceContext_nsCtxprotected java.lang.String_piDataprotected java.lang.String_piTargetprotected StreamReaderBufferProcessor.ElementStackEntry[]_stackprotected StreamReaderBufferProcessor.ElementStackEntry_stackTopThe top-most active entry of the_stack.protected int_textLenprotected int_textOffsetprivate static intCACHE_SIZEprivate static intCOMPLETEDThe parser has reported theXMLStreamConstants.END_DOCUMENTevent, so we are really done parsing.private static intPARSINGThe parser is in the middle of parsing a document, with no end in sight.private static intPENDING_END_DOCUMENTThe parser has already reported theXMLStreamConstants.END_ELEMENT, and we are parsing a fragment.-
Fields inherited from class com.sun.xml.stream.buffer.AbstractProcessor
_buffer, _fragmentMode, _qNameBuffer, _stringInterningFeature, _treeCount, STATE_ATTRIBUTE_LN, STATE_ATTRIBUTE_LN_OBJECT, STATE_ATTRIBUTE_P_U_LN, STATE_ATTRIBUTE_P_U_LN_OBJECT, STATE_ATTRIBUTE_U_LN, STATE_ATTRIBUTE_U_LN_OBJECT, STATE_ATTRIBUTE_U_LN_QN, STATE_ATTRIBUTE_U_LN_QN_OBJECT, STATE_COMMENT_AS_CHAR_ARRAY_COPY, STATE_COMMENT_AS_CHAR_ARRAY_MEDIUM, STATE_COMMENT_AS_CHAR_ARRAY_SMALL, STATE_COMMENT_AS_STRING, STATE_DOCUMENT, STATE_DOCUMENT_FRAGMENT, STATE_ELEMENT_LN, STATE_ELEMENT_P_U_LN, STATE_ELEMENT_U_LN, STATE_ELEMENT_U_LN_QN, STATE_END, STATE_ILLEGAL, STATE_NAMESPACE_ATTRIBUTE, STATE_NAMESPACE_ATTRIBUTE_P, STATE_NAMESPACE_ATTRIBUTE_P_U, STATE_NAMESPACE_ATTRIBUTE_U, STATE_PROCESSING_INSTRUCTION, STATE_TEXT_AS_CHAR_ARRAY_COPY, STATE_TEXT_AS_CHAR_ARRAY_MEDIUM, STATE_TEXT_AS_CHAR_ARRAY_SMALL, STATE_TEXT_AS_OBJECT, STATE_TEXT_AS_STRING
-
Fields inherited from class com.sun.xml.stream.buffer.AbstractCreatorProcessor
_contentCharactersBuffer, _contentCharactersBufferPtr, _contentObjects, _contentObjectsPtr, _currentContentCharactersBufferFragment, _currentContentObjectFragment, _currentStructureFragment, _currentStructureStringFragment, _structure, _structurePtr, _structureStrings, _structureStringsPtr, CHAR_ARRAY_LENGTH_MEDIUM, CHAR_ARRAY_LENGTH_MEDIUM_SIZE, CHAR_ARRAY_LENGTH_SMALL, CHAR_ARRAY_LENGTH_SMALL_SIZE, CONTENT_TYPE_CHAR_ARRAY, CONTENT_TYPE_CHAR_ARRAY_COPY, CONTENT_TYPE_OBJECT, CONTENT_TYPE_STRING, FLAG_DOCUMENT_FRAGMENT, FLAG_PREFIX, FLAG_QUALIFIED_NAME, FLAG_URI, T_ATTRIBUTE, T_ATTRIBUTE_LN, T_ATTRIBUTE_LN_OBJECT, T_ATTRIBUTE_P_U_LN, T_ATTRIBUTE_P_U_LN_OBJECT, T_ATTRIBUTE_U_LN, T_ATTRIBUTE_U_LN_OBJECT, T_ATTRIBUTE_U_LN_QN, T_ATTRIBUTE_U_LN_QN_OBJECT, T_COMMENT, T_COMMENT_AS_CHAR_ARRAY, T_COMMENT_AS_CHAR_ARRAY_COPY, T_COMMENT_AS_CHAR_ARRAY_MEDIUM, T_COMMENT_AS_CHAR_ARRAY_SMALL, T_COMMENT_AS_STRING, T_DOCUMENT, T_DOCUMENT_FRAGMENT, T_ELEMENT, T_ELEMENT_LN, T_ELEMENT_P_U_LN, T_ELEMENT_U_LN, T_ELEMENT_U_LN_QN, T_END, T_END_OF_BUFFER, T_NAMESPACE_ATTRIBUTE, T_NAMESPACE_ATTRIBUTE_P, T_NAMESPACE_ATTRIBUTE_P_U, T_NAMESPACE_ATTRIBUTE_U, T_PROCESSING_INSTRUCTION, T_TEXT, T_TEXT_AS_CHAR_ARRAY, T_TEXT_AS_CHAR_ARRAY_COPY, T_TEXT_AS_CHAR_ARRAY_MEDIUM, T_TEXT_AS_CHAR_ARRAY_SMALL, T_TEXT_AS_OBJECT, T_TEXT_AS_STRING, T_UNEXPANDED_ENTITY_REFERENCE, TYPE_MASK, VALUE_TYPE_OBJECT, VALUE_TYPE_STRING
-
-
Constructor Summary
Constructors Constructor Description StreamReaderBufferProcessor()StreamReaderBufferProcessor(XMLStreamBuffer buffer)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()private static java.lang.StringfixEmptyString(java.lang.String s)private static java.lang.StringfixNull(java.lang.String s)intgetAttributeCount()java.lang.StringgetAttributeLocalName(int index)javax.xml.namespace.QNamegetAttributeName(int index)java.lang.StringgetAttributeNamespace(int index)java.lang.StringgetAttributePrefix(int index)java.lang.StringgetAttributeType(int index)java.lang.StringgetAttributeValue(int index)java.lang.StringgetAttributeValue(java.lang.String namespaceURI, java.lang.String localName)java.lang.StringgetCharacterEncodingScheme()java.lang.StringgetElementText()java.lang.StringgetElementText(boolean startElementRead)java.lang.StringgetElementTextTrim()java.lang.StringgetEncoding()intgetEventType()java.lang.StringgetLocalName()javax.xml.stream.LocationgetLocation()javax.xml.namespace.QNamegetName()org.jvnet.staxex.NamespaceContextExgetNamespaceContext()intgetNamespaceCount()java.lang.StringgetNamespacePrefix(int index)java.lang.StringgetNamespaceURI()java.lang.StringgetNamespaceURI(int index)java.lang.StringgetNamespaceURI(java.lang.String prefix)java.lang.CharSequencegetPCDATA()java.lang.StringgetPIData()java.lang.StringgetPITarget()java.lang.StringgetPrefix()java.lang.ObjectgetProperty(java.lang.String name)java.lang.StringgetText()char[]getTextCharacters()intgetTextCharacters(int sourceStart, char[] target, int targetStart, int length)intgetTextLength()intgetTextStart()java.lang.StringgetVersion()booleanhasName()booleanhasNext()booleanhasText()booleanisAttributeSpecified(int index)booleanisCharacters()booleanisEndElement()private booleanisInscope(int depth)booleanisStandalone()booleanisStartElement()booleanisWhiteSpace()intnext()intnextTag()intnextTag(boolean currentTagRead)XMLStreamBuffernextTagAndMark()DoesnextTag()and if the parser moved to a new start tag, returns aXMLStreamBufferMarkthat captures the infoset starting from the newly discovered element.private voidpopElementStack(int depth)private voidprocessAttributes(int item)protected voidprocessElement(java.lang.String prefix, java.lang.String uri, java.lang.String localName, boolean inscope)private intprocessNamespaceAttributes(int item, boolean inscope)private voidpushElementStack()voidrequire(int type, java.lang.String namespaceURI, java.lang.String localName)private voidresizeNamespaceAttributes()voidsetXMLStreamBuffer(XMLStreamBuffer buffer)booleanstandaloneSet()-
Methods inherited from class com.sun.xml.stream.buffer.AbstractProcessor
getAIIState, getEIIState, getNIIState, getPrefixFromQName, getQName, peekStructure, readContentCharactersBuffer, readContentCharactersCopy, readContentObject, readContentString, readEiiState, readStructure, readStructure16, readStructureString, setBuffer, setBuffer
-
-
-
-
Field Detail
-
CACHE_SIZE
private static final int CACHE_SIZE
- See Also:
- Constant Field Values
-
_stack
protected StreamReaderBufferProcessor.ElementStackEntry[] _stack
-
_stackTop
protected StreamReaderBufferProcessor.ElementStackEntry _stackTop
The top-most active entry of the_stack.
-
_depth
protected int _depth
The element depth that we are in. Used to determine when we are done with a tree.
-
_namespaceAIIsPrefix
protected java.lang.String[] _namespaceAIIsPrefix
Namespace prefixes. Can be empty but not null.
-
_namespaceAIIsNamespaceName
protected java.lang.String[] _namespaceAIIsNamespaceName
-
_namespaceAIIsEnd
protected int _namespaceAIIsEnd
-
_nsCtx
protected StreamReaderBufferProcessor.InternalNamespaceContext _nsCtx
-
_eventType
protected int _eventType
-
_attributeCache
protected AttributesHolder _attributeCache
Holder of the attributes. Be careful that this follows the SAX convention of using "" instead of null.
-
_charSequence
protected java.lang.CharSequence _charSequence
-
_characters
protected char[] _characters
-
_textOffset
protected int _textOffset
-
_textLen
protected int _textLen
-
_piTarget
protected java.lang.String _piTarget
-
_piData
protected java.lang.String _piData
-
PARSING
private static final int PARSING
The parser is in the middle of parsing a document, with no end in sight.- See Also:
- Constant Field Values
-
PENDING_END_DOCUMENT
private static final int PENDING_END_DOCUMENT
The parser has already reported theXMLStreamConstants.END_ELEMENT, and we are parsing a fragment. We'll reportXMLStreamConstants.END_DOCUMENTnext and be done.- See Also:
- Constant Field Values
-
COMPLETED
private static final int COMPLETED
The parser has reported theXMLStreamConstants.END_DOCUMENTevent, so we are really done parsing.- See Also:
- Constant Field Values
-
_completionState
private int _completionState
True if processing is complete.
-
-
Constructor Detail
-
StreamReaderBufferProcessor
public StreamReaderBufferProcessor()
-
StreamReaderBufferProcessor
public StreamReaderBufferProcessor(XMLStreamBuffer buffer) throws javax.xml.stream.XMLStreamException
- Throws:
javax.xml.stream.XMLStreamException
-
-
Method Detail
-
setXMLStreamBuffer
public void setXMLStreamBuffer(XMLStreamBuffer buffer) throws javax.xml.stream.XMLStreamException
- Throws:
javax.xml.stream.XMLStreamException
-
nextTagAndMark
public XMLStreamBuffer nextTagAndMark() throws javax.xml.stream.XMLStreamException
DoesnextTag()and if the parser moved to a new start tag, returns aXMLStreamBufferMarkthat captures the infoset starting from the newly discovered element.(Ideally we should have a method that works against the current position, but the way the data structure is read makes this somewhat difficult.) This creates a new
XMLStreamBufferMarkthat shares the underlying data storage, thus it's fairly efficient.- Throws:
javax.xml.stream.XMLStreamException
-
getProperty
public java.lang.Object getProperty(java.lang.String name)
- Specified by:
getPropertyin interfacejavax.xml.stream.XMLStreamReader
-
next
public int next() throws javax.xml.stream.XMLStreamException- Specified by:
nextin interfacejavax.xml.stream.XMLStreamReader- Throws:
javax.xml.stream.XMLStreamException
-
require
public final void require(int type, java.lang.String namespaceURI, java.lang.String localName) throws javax.xml.stream.XMLStreamException- Specified by:
requirein interfacejavax.xml.stream.XMLStreamReader- Throws:
javax.xml.stream.XMLStreamException
-
getElementTextTrim
public final java.lang.String getElementTextTrim() throws javax.xml.stream.XMLStreamException- Specified by:
getElementTextTrimin interfaceorg.jvnet.staxex.XMLStreamReaderEx- Throws:
javax.xml.stream.XMLStreamException
-
getElementText
public final java.lang.String getElementText() throws javax.xml.stream.XMLStreamException- Specified by:
getElementTextin interfacejavax.xml.stream.XMLStreamReader- Throws:
javax.xml.stream.XMLStreamException
-
getElementText
public final java.lang.String getElementText(boolean startElementRead) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
nextTag
public final int nextTag() throws javax.xml.stream.XMLStreamException- Specified by:
nextTagin interfacejavax.xml.stream.XMLStreamReader- Throws:
javax.xml.stream.XMLStreamException
-
nextTag
public final int nextTag(boolean currentTagRead) throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
hasNext
public final boolean hasNext()
- Specified by:
hasNextin interfacejavax.xml.stream.XMLStreamReader
-
close
public void close() throws javax.xml.stream.XMLStreamException- Specified by:
closein interfacejavax.xml.stream.XMLStreamReader- Throws:
javax.xml.stream.XMLStreamException
-
isStartElement
public final boolean isStartElement()
- Specified by:
isStartElementin interfacejavax.xml.stream.XMLStreamReader
-
isEndElement
public final boolean isEndElement()
- Specified by:
isEndElementin interfacejavax.xml.stream.XMLStreamReader
-
isCharacters
public final boolean isCharacters()
- Specified by:
isCharactersin interfacejavax.xml.stream.XMLStreamReader
-
isWhiteSpace
public final boolean isWhiteSpace()
- Specified by:
isWhiteSpacein interfacejavax.xml.stream.XMLStreamReader
-
getAttributeValue
public final java.lang.String getAttributeValue(java.lang.String namespaceURI, java.lang.String localName)- Specified by:
getAttributeValuein interfacejavax.xml.stream.XMLStreamReader
-
getAttributeCount
public final int getAttributeCount()
- Specified by:
getAttributeCountin interfacejavax.xml.stream.XMLStreamReader
-
getAttributeName
public final javax.xml.namespace.QName getAttributeName(int index)
- Specified by:
getAttributeNamein interfacejavax.xml.stream.XMLStreamReader
-
getAttributeNamespace
public final java.lang.String getAttributeNamespace(int index)
- Specified by:
getAttributeNamespacein interfacejavax.xml.stream.XMLStreamReader
-
getAttributeLocalName
public final java.lang.String getAttributeLocalName(int index)
- Specified by:
getAttributeLocalNamein interfacejavax.xml.stream.XMLStreamReader
-
getAttributePrefix
public final java.lang.String getAttributePrefix(int index)
- Specified by:
getAttributePrefixin interfacejavax.xml.stream.XMLStreamReader
-
getAttributeType
public final java.lang.String getAttributeType(int index)
- Specified by:
getAttributeTypein interfacejavax.xml.stream.XMLStreamReader
-
getAttributeValue
public final java.lang.String getAttributeValue(int index)
- Specified by:
getAttributeValuein interfacejavax.xml.stream.XMLStreamReader
-
isAttributeSpecified
public final boolean isAttributeSpecified(int index)
- Specified by:
isAttributeSpecifiedin interfacejavax.xml.stream.XMLStreamReader
-
getNamespaceCount
public final int getNamespaceCount()
- Specified by:
getNamespaceCountin interfacejavax.xml.stream.XMLStreamReader
-
getNamespacePrefix
public final java.lang.String getNamespacePrefix(int index)
- Specified by:
getNamespacePrefixin interfacejavax.xml.stream.XMLStreamReader
-
getNamespaceURI
public final java.lang.String getNamespaceURI(int index)
- Specified by:
getNamespaceURIin interfacejavax.xml.stream.XMLStreamReader
-
getNamespaceURI
public final java.lang.String getNamespaceURI(java.lang.String prefix)
- Specified by:
getNamespaceURIin interfacejavax.xml.stream.XMLStreamReader
-
getNamespaceContext
public final org.jvnet.staxex.NamespaceContextEx getNamespaceContext()
- Specified by:
getNamespaceContextin interfacejavax.xml.stream.XMLStreamReader- Specified by:
getNamespaceContextin interfaceorg.jvnet.staxex.XMLStreamReaderEx
-
getEventType
public final int getEventType()
- Specified by:
getEventTypein interfacejavax.xml.stream.XMLStreamReader
-
getText
public final java.lang.String getText()
- Specified by:
getTextin interfacejavax.xml.stream.XMLStreamReader
-
getTextCharacters
public final char[] getTextCharacters()
- Specified by:
getTextCharactersin interfacejavax.xml.stream.XMLStreamReader
-
getTextStart
public final int getTextStart()
- Specified by:
getTextStartin interfacejavax.xml.stream.XMLStreamReader
-
getTextLength
public final int getTextLength()
- Specified by:
getTextLengthin interfacejavax.xml.stream.XMLStreamReader
-
getTextCharacters
public final int getTextCharacters(int sourceStart, char[] target, int targetStart, int length) throws javax.xml.stream.XMLStreamException- Specified by:
getTextCharactersin interfacejavax.xml.stream.XMLStreamReader- Throws:
javax.xml.stream.XMLStreamException
-
getPCDATA
public final java.lang.CharSequence getPCDATA()
- Specified by:
getPCDATAin interfaceorg.jvnet.staxex.XMLStreamReaderEx
-
getEncoding
public final java.lang.String getEncoding()
- Specified by:
getEncodingin interfacejavax.xml.stream.XMLStreamReader
-
hasText
public final boolean hasText()
- Specified by:
hasTextin interfacejavax.xml.stream.XMLStreamReader
-
getLocation
public final javax.xml.stream.Location getLocation()
- Specified by:
getLocationin interfacejavax.xml.stream.XMLStreamReader
-
hasName
public final boolean hasName()
- Specified by:
hasNamein interfacejavax.xml.stream.XMLStreamReader
-
getName
public final javax.xml.namespace.QName getName()
- Specified by:
getNamein interfacejavax.xml.stream.XMLStreamReader
-
getLocalName
public final java.lang.String getLocalName()
- Specified by:
getLocalNamein interfacejavax.xml.stream.XMLStreamReader
-
getNamespaceURI
public final java.lang.String getNamespaceURI()
- Specified by:
getNamespaceURIin interfacejavax.xml.stream.XMLStreamReader
-
getPrefix
public final java.lang.String getPrefix()
- Specified by:
getPrefixin interfacejavax.xml.stream.XMLStreamReader
-
getVersion
public final java.lang.String getVersion()
- Specified by:
getVersionin interfacejavax.xml.stream.XMLStreamReader
-
isStandalone
public final boolean isStandalone()
- Specified by:
isStandalonein interfacejavax.xml.stream.XMLStreamReader
-
standaloneSet
public final boolean standaloneSet()
- Specified by:
standaloneSetin interfacejavax.xml.stream.XMLStreamReader
-
getCharacterEncodingScheme
public final java.lang.String getCharacterEncodingScheme()
- Specified by:
getCharacterEncodingSchemein interfacejavax.xml.stream.XMLStreamReader
-
getPITarget
public final java.lang.String getPITarget()
- Specified by:
getPITargetin interfacejavax.xml.stream.XMLStreamReader
-
getPIData
public final java.lang.String getPIData()
- Specified by:
getPIDatain interfacejavax.xml.stream.XMLStreamReader
-
processElement
protected void processElement(java.lang.String prefix, java.lang.String uri, java.lang.String localName, boolean inscope)
-
isInscope
private boolean isInscope(int depth)
-
resizeNamespaceAttributes
private void resizeNamespaceAttributes()
-
processNamespaceAttributes
private int processNamespaceAttributes(int item, boolean inscope)
-
fixNull
private static java.lang.String fixNull(java.lang.String s)
-
processAttributes
private void processAttributes(int item)
-
pushElementStack
private void pushElementStack()
-
popElementStack
private void popElementStack(int depth)
-
fixEmptyString
private static java.lang.String fixEmptyString(java.lang.String s)
-
-