com.fasterxml.jackson.dataformat.xml.deser
Class XmlTokenStream

java.lang.Object
  extended by 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
protected  int _attributeCount
           
protected  int _currentState
           
protected  com.fasterxml.jackson.dataformat.xml.deser.ElementWrapper _currentWrapper
          Wrapping state, if any active (null if none)
protected  String _localName
           
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
XmlTokenStream(XMLStreamReader xmlReader, Object sourceRef)
           
 
Method Summary
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 skipAttributes()
          Method called to skip any attributes current START_ELEMENT may have, so that they are not returned as token.
 void skipEndElement()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, 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

_currentState

protected int _currentState

_attributeCount

protected int _attributeCount

_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)
Method Detail

getXmlReader

public org.codehaus.stax2.XMLStreamReader2 getXmlReader()

next

public int next()
         throws IOException
Throws:
IOException

skipEndElement

public void skipEndElement()
                    throws IOException
Throws:
IOException

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 IOException
Throws:
IOException

close

public void close()
           throws IOException
Throws:
IOException

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 IOException
Throws:
IOException

_handleRepeatElement

protected int _handleRepeatElement()
                            throws IOException
Method called to handle details of repeating "virtual" start/end elements, needed for handling 'unwrapped' lists.

Throws:
IOException


Copyright © 2012 FasterXML. All Rights Reserved.