com.fasterxml.jackson.dataformat.xml.deser

## Class XmlTokenStream

- java.lang.Object
- - com.fasterxml.jackson.dataformat.xml.deser.XmlTokenStream

    public class XmlTokenStream
    extends Object

Simple helper class used on top of STAX `XMLStreamReader` 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

### Field Summary

Fields
`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 which `FromXmlParser.Feature`s are enabled.
`protected String` `_localName`
`protected boolean` `_mixedText` If true we have a START_ELEMENT with mixed text
`protected 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 return
`protected 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 String` `_nextNamespaceURI`
`protected int` `_repeatElement` Flag used to indicate that given element should be "replayed".
`protected Object` `_sourceReference`
`protected String` `_textValue`
`protected org.codehaus.stax2.XMLStreamReader2` `_xmlReader`
`static int` `XML_ATTRIBUTE_NAME`
`static int` `XML_ATTRIBUTE_VALUE`
`static int` `XML_END`
`static int` `XML_END_ELEMENT`
`static int` `XML_START_ELEMENT`
`static int` `XML_TEXT`

### Constructor Summary

Constructors
Constructor and Description
`XmlTokenStream(XMLStreamReader xmlReader, Object sourceRef, int formatFeatures)`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected boolean` `_allWs(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 String` `convertToString()`
`com.fasterxml.jackson.core.JsonLocation` `getCurrentLocation()`
`int` `getCurrentToken()`
`String` `getLocalName()`
`String` `getNamespaceURI()`
`String` `getText()`
`com.fasterxml.jackson.core.JsonLocation` `getTokenLocation()`
`org.codehaus.stax2.XMLStreamReader2` `getXmlReader()`
`boolean` `hasAttributes()`
`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()`
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### 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_END

    public static final int XML_END

See Also:
  Constant Field Values

#### _xmlReader

    protected final org.codehaus.stax2.XMLStreamReader2 _xmlReader

#### _sourceReference

    protected final Object _sourceReference

#### _formatFeatures

    protected int _formatFeatures

Bit flag composed of bits that indicate which `FromXmlParser.Feature`s are enabled.

#### _currentState

    protected int _currentState

#### _attributeCount

    protected int _attributeCount

#### _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 String _localName

#### _namespaceURI

    protected String _namespaceURI

#### _textValue

    protected 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 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 String _nextNamespaceURI

### Constructor Detail

#### XmlTokenStream

    public XmlTokenStream(XMLStreamReader xmlReader,
                          Object sourceRef,
                          int formatFeatures)

### Method Detail

#### getXmlReader

    public org.codehaus.stax2.XMLStreamReader2 getXmlReader()

#### setFormatFeatures

    protected void setFormatFeatures(int f)

Since:
  2.9

#### next

    public int next()
             throws XMLStreamException

Throws:
  `XMLStreamException`

#### skipEndElement

    public void skipEndElement()
                        throws IOException,
                               XMLStreamException

Throws:
  `IOException`
  `XMLStreamException`

#### getCurrentToken

    public int getCurrentToken()

#### getText

    public String getText()

#### getLocalName

    public String getLocalName()

#### getNamespaceURI

    public String getNamespaceURI()

#### hasAttributes

    public boolean hasAttributes()

#### closeCompletely

    public void closeCompletely()
                         throws XMLStreamException

Throws:
  `XMLStreamException`

#### close

    public void close()
               throws XMLStreamException

Throws:
  `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 String convertToString()
                              throws XMLStreamException

Throws:
  `XMLStreamException`

#### _handleRepeatElement

    protected int _handleRepeatElement()
                                throws XMLStreamException

Method called to handle details of repeating "virtual" start/end elements, needed for handling 'unwrapped' lists.

Throws:
  `XMLStreamException`

#### _allWs

    protected boolean _allWs(String str)

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`