Class XmlTokenStream
- java.lang.Object
-
- com.fasterxml.jackson.dataformat.xml.deser.XmlTokenStream
-
public class XmlTokenStream extends java.lang.Object
Simple helper class used on top of STAXXMLStreamReader
to further abstract out all irrelevant details, and to expose equivalent of flat token stream with no "fluff" tokens (comments, processing instructions, mixed content) all of which is just to simplify actual higher-level conversion to JSON tokens.Beyond initial idea there are also couple of other detours like ability to "replay" some tokens, add virtual wrappers (ironically to support "unwrapped" array values), and to unroll "Objects" into String values in some cases.
-
-
Field Summary
Fields Modifier and Type Field Description protected int
_attributeCount
protected int
_currentState
protected com.fasterxml.jackson.dataformat.xml.deser.ElementWrapper
_currentWrapper
Wrapping state, if any active (null if none)protected int
_formatFeatures
Bit flag composed of bits that indicate whichFromXmlParser.Feature
s are enabled.protected java.lang.String
_localName
protected boolean
_mixedText
If true we have a START_ELEMENT with mixed textprotected java.lang.String
_namespaceURI
protected int
_nextAttributeIndex
Index of the next attribute of the current START_ELEMENT to return (as field name and value pair), if any; -1 when no attributes to returnprotected java.lang.String
_nextLocalName
In cases where we need to 'inject' a virtual END_ELEMENT, we may also need to restore START_ELEMENT afterwards; if so, this is where names are held.protected java.lang.String
_nextNamespaceURI
protected int
_repeatElement
Flag used to indicate that given element should be "replayed".protected java.lang.Object
_sourceReference
protected java.lang.String
_textValue
protected org.codehaus.stax2.XMLStreamReader2
_xmlReader
protected boolean
_xsiNilFound
Marker used to indicate presence of `xsi:nil="true"' in current START_ELEMENT.static int
XML_ATTRIBUTE_NAME
static int
XML_ATTRIBUTE_VALUE
static int
XML_END
static int
XML_END_ELEMENT
static int
XML_NULL
static int
XML_START_ELEMENT
static int
XML_TEXT
-
Constructor Summary
Constructors Constructor Description XmlTokenStream(javax.xml.stream.XMLStreamReader xmlReader, java.lang.Object sourceRef, int formatFeatures)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
_allWs(java.lang.String str)
protected int
_handleRepeatElement()
Method called to handle details of repeating "virtual" start/end elements, needed for handling 'unwrapped' lists.void
close()
void
closeCompletely()
protected java.lang.String
convertToString()
Helper method called by XML String deserializer to concatenate textual contents contained in logical "Object": mostly just to skip attribute values.com.fasterxml.jackson.core.JsonLocation
getCurrentLocation()
int
getCurrentToken()
java.lang.String
getLocalName()
java.lang.String
getNamespaceURI()
java.lang.String
getText()
com.fasterxml.jackson.core.JsonLocation
getTokenLocation()
org.codehaus.stax2.XMLStreamReader2
getXmlReader()
int
next()
protected void
repeatStartElement()
Method used to add virtual wrapping, which just duplicates START_ELEMENT stream points to, and its matching closing element.protected void
setFormatFeatures(int f)
protected void
skipAttributes()
Method called to skip any attributes current START_ELEMENT may have, so that they are not returned as token.void
skipEndElement()
java.lang.String
toString()
-
-
-
Field Detail
-
XML_START_ELEMENT
public static final int XML_START_ELEMENT
- See Also:
- Constant Field Values
-
XML_END_ELEMENT
public static final int XML_END_ELEMENT
- See Also:
- Constant Field Values
-
XML_ATTRIBUTE_NAME
public static final int XML_ATTRIBUTE_NAME
- See Also:
- Constant Field Values
-
XML_ATTRIBUTE_VALUE
public static final int XML_ATTRIBUTE_VALUE
- See Also:
- Constant Field Values
-
XML_TEXT
public static final int XML_TEXT
- See Also:
- Constant Field Values
-
XML_NULL
public static final int XML_NULL
- See Also:
- Constant Field Values
-
XML_END
public static final int XML_END
- See Also:
- Constant Field Values
-
_xmlReader
protected final org.codehaus.stax2.XMLStreamReader2 _xmlReader
-
_sourceReference
protected final java.lang.Object _sourceReference
-
_formatFeatures
protected int _formatFeatures
Bit flag composed of bits that indicate whichFromXmlParser.Feature
s are enabled.
-
_currentState
protected int _currentState
-
_attributeCount
protected int _attributeCount
-
_xsiNilFound
protected boolean _xsiNilFound
Marker used to indicate presence of `xsi:nil="true"' in current START_ELEMENT.- Since:
- 2.10
-
_mixedText
protected boolean _mixedText
If true we have a START_ELEMENT with mixed text- Since:
- 2.8
-
_nextAttributeIndex
protected int _nextAttributeIndex
Index of the next attribute of the current START_ELEMENT to return (as field name and value pair), if any; -1 when no attributes to return
-
_localName
protected java.lang.String _localName
-
_namespaceURI
protected java.lang.String _namespaceURI
-
_textValue
protected java.lang.String _textValue
-
_repeatElement
protected int _repeatElement
Flag used to indicate that given element should be "replayed".
-
_currentWrapper
protected com.fasterxml.jackson.dataformat.xml.deser.ElementWrapper _currentWrapper
Wrapping state, if any active (null if none)
-
_nextLocalName
protected java.lang.String _nextLocalName
In cases where we need to 'inject' a virtual END_ELEMENT, we may also need to restore START_ELEMENT afterwards; if so, this is where names are held.
-
_nextNamespaceURI
protected java.lang.String _nextNamespaceURI
-
-
Method Detail
-
getXmlReader
public org.codehaus.stax2.XMLStreamReader2 getXmlReader()
-
setFormatFeatures
protected void setFormatFeatures(int f)
- Since:
- 2.9
-
next
public int next() throws javax.xml.stream.XMLStreamException
- Throws:
javax.xml.stream.XMLStreamException
-
skipEndElement
public void skipEndElement() throws java.io.IOException, javax.xml.stream.XMLStreamException
- Throws:
java.io.IOException
javax.xml.stream.XMLStreamException
-
getCurrentToken
public int getCurrentToken()
-
getText
public java.lang.String getText()
-
getLocalName
public java.lang.String getLocalName()
-
getNamespaceURI
public java.lang.String getNamespaceURI()
-
closeCompletely
public void closeCompletely() throws javax.xml.stream.XMLStreamException
- Throws:
javax.xml.stream.XMLStreamException
-
close
public void close() throws javax.xml.stream.XMLStreamException
- Throws:
javax.xml.stream.XMLStreamException
-
getCurrentLocation
public com.fasterxml.jackson.core.JsonLocation getCurrentLocation()
-
getTokenLocation
public com.fasterxml.jackson.core.JsonLocation getTokenLocation()
-
repeatStartElement
protected void repeatStartElement()
Method used to add virtual wrapping, which just duplicates START_ELEMENT stream points to, and its matching closing element.- Since:
- 2.1
-
skipAttributes
protected void skipAttributes()
Method called to skip any attributes current START_ELEMENT may have, so that they are not returned as token.- Since:
- 2.1
-
convertToString
protected java.lang.String convertToString() throws javax.xml.stream.XMLStreamException
Helper method called by XML String deserializer to concatenate textual contents contained in logical "Object": mostly just to skip attribute values.- Throws:
javax.xml.stream.XMLStreamException
-
_handleRepeatElement
protected int _handleRepeatElement() throws javax.xml.stream.XMLStreamException
Method called to handle details of repeating "virtual" start/end elements, needed for handling 'unwrapped' lists.- Throws:
javax.xml.stream.XMLStreamException
-
_allWs
protected boolean _allWs(java.lang.String str)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-