public class FromXmlParser
extends com.fasterxml.jackson.core.base.ParserMinimalBase
JsonParser
implementation that exposes XML structure as
set of JSON events that can be used for data binding.Modifier and Type | Class and Description |
---|---|
static class |
FromXmlParser.Feature
Enumeration that defines all togglable features for XML parsers
|
Modifier and Type | Field and Description |
---|---|
protected byte[] |
_binaryValue
We will hold on to decoded binary data, for duration of
current event, so that multiple calls to
getBinaryValue(com.fasterxml.jackson.core.Base64Variant) will not need to decode data more
than once. |
protected com.fasterxml.jackson.core.util.ByteArrayBuilder |
_byteArrayBuilder
ByteArrayBuilder is needed if 'getBinaryValue' is called.
|
protected String |
_cfgNameForTextElement
In cases where a start element has both attributes and non-empty textual
value, we have to create a bogus property; we will use this as
the property name.
|
protected boolean |
_closed
Flag that indicates whether parser is closed or not.
|
protected String |
_currText |
protected com.fasterxml.jackson.core.io.IOContext |
_ioContext |
protected boolean |
_mayBeLeaf
We need special handling to keep track of whether a value
may be exposed as simple leaf value.
|
protected Set<String> |
_namesToWrap |
protected com.fasterxml.jackson.core.JsonToken |
_nextToken |
protected com.fasterxml.jackson.core.ObjectCodec |
_objectCodec |
protected XmlReadContext |
_parsingContext
Information about parser context, context in which
the next token is to be parsed (root, array, object).
|
protected int |
_xmlFeatures
Bit flag composed of bits that indicate which
FromXmlParser.Feature s
are enabled. |
protected XmlTokenStream |
_xmlTokens |
static String |
DEFAULT_UNNAMED_TEXT_PROPERTY
The default name placeholder for XML text segments is empty
String ("").
|
_currToken, _lastClearedToken, INT_APOSTROPHE, INT_ASTERISK, INT_b, INT_BACKSLASH, INT_COLON, INT_COMMA, INT_CR, INT_f, INT_LBRACKET, INT_LCURLY, INT_LF, INT_n, INT_QUOTE, INT_r, INT_RBRACKET, INT_RCURLY, INT_SLASH, INT_SPACE, INT_t, INT_TAB, INT_u
Constructor and Description |
---|
FromXmlParser(com.fasterxml.jackson.core.io.IOContext ctxt,
int genericParserFeatures,
int xmlFeatures,
com.fasterxml.jackson.core.ObjectCodec codec,
XMLStreamReader xmlReader) |
Modifier and Type | Method and Description |
---|---|
protected byte[] |
_decodeBase64(com.fasterxml.jackson.core.Base64Variant b64variant) |
protected com.fasterxml.jackson.core.util.ByteArrayBuilder |
_getByteArrayBuilder() |
protected void |
_handleEOF()
Method called when an EOF is encountered between tokens.
|
protected boolean |
_isEmpty(String str) |
protected void |
_releaseBuffers()
Method called to release internal buffers owned by the base
parser.
|
protected void |
_reportBase64EOF() |
protected void |
_reportInvalidBase64(com.fasterxml.jackson.core.Base64Variant b64variant,
char ch,
int bindex,
String msg) |
void |
addVirtualWrapping(Set<String> namesToWrap)
Method that may be called to indicate that specified names
(only local parts retained currently: this may be changed in
future) should be considered "auto-wrapping", meaning that
they will be doubled to contain two opening elements, two
matching closing elements.
|
void |
close() |
FromXmlParser |
configure(FromXmlParser.Feature f,
boolean state) |
FromXmlParser |
disable(FromXmlParser.Feature f) |
FromXmlParser |
enable(FromXmlParser.Feature f) |
BigInteger |
getBigIntegerValue() |
byte[] |
getBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant) |
com.fasterxml.jackson.core.ObjectCodec |
getCodec() |
com.fasterxml.jackson.core.JsonLocation |
getCurrentLocation()
Method that returns location of the last processed character;
usually for error reporting purposes
|
String |
getCurrentName()
Method that can be called to get the name associated with
the current event.
|
BigDecimal |
getDecimalValue() |
double |
getDoubleValue() |
Object |
getEmbeddedObject() |
float |
getFloatValue() |
int |
getIntValue() |
long |
getLongValue() |
com.fasterxml.jackson.core.JsonParser.NumberType |
getNumberType() |
Number |
getNumberValue() |
XmlReadContext |
getParsingContext() |
XMLStreamReader |
getStaxReader()
Method that allows application direct access to underlying
Stax
XMLStreamWriter . |
String |
getText() |
char[] |
getTextCharacters() |
int |
getTextLength() |
int |
getTextOffset() |
com.fasterxml.jackson.core.JsonLocation |
getTokenLocation()
Method that return the starting location of the current
token; that is, position of the first character from input
that starts the current token.
|
String |
getValueAsString() |
String |
getValueAsString(String defValue) |
boolean |
hasTextCharacters()
XML input actually would offer access to character arrays; but since
we must coalesce things it cannot really be exposed.
|
boolean |
isClosed() |
boolean |
isEnabled(FromXmlParser.Feature f) |
boolean |
isExpectedStartArrayToken()
Since xml representation can not really distinguish between array
and object starts (both are represented with elements), this method
is overridden and taken to mean that expecation is that the current
start element is to mean 'start array', instead of default of
'start object'.
|
com.fasterxml.jackson.core.JsonToken |
nextToken() |
void |
overrideCurrentName(String name) |
boolean |
requiresCustomCodec()
XML format does require support from custom
ObjectCodec
(that is, XmlMapper ), so need to return true here. |
void |
setCodec(com.fasterxml.jackson.core.ObjectCodec c) |
void |
setXMLTextElementName(String name) |
_constructError, _decodeBase64, _getCharDesc, _handleUnrecognizedCharacterEscape, _reportError, _reportInvalidEOF, _reportInvalidEOF, _reportInvalidEOFInValue, _reportUnexpectedChar, _throwInternal, _throwInvalidSpace, _throwUnquotedSpace, _wrapError, clearCurrentToken, getCurrentToken, getLastClearedToken, getValueAsBoolean, getValueAsDouble, getValueAsInt, getValueAsLong, hasCurrentToken, nextValue, skipChildren, version
_constructError, _reportUnsupportedOperation, canUseSchema, configure, disable, enable, getBinaryValue, getBooleanValue, getByteValue, getInputSource, getSchema, getShortValue, getValueAsBoolean, getValueAsDouble, getValueAsInt, getValueAsLong, isEnabled, nextBooleanValue, nextFieldName, nextIntValue, nextLongValue, nextTextValue, readBinaryValue, readBinaryValue, readValueAs, readValueAs, readValueAsTree, readValuesAs, readValuesAs, releaseBuffered, releaseBuffered, setSchema
public static final String DEFAULT_UNNAMED_TEXT_PROPERTY
protected String _cfgNameForTextElement
Name used for pseudo-property used for returning XML Text value (which does not have actual element name to use). Defaults to empty String, but may be changed for interoperability reasons: JAXB, for example, uses "value" as name.
protected int _xmlFeatures
FromXmlParser.Feature
s
are enabled.protected com.fasterxml.jackson.core.ObjectCodec _objectCodec
protected boolean _closed
close()
) or when end-of-input is reached.protected final com.fasterxml.jackson.core.io.IOContext _ioContext
protected XmlReadContext _parsingContext
protected final XmlTokenStream _xmlTokens
protected boolean _mayBeLeaf
protected com.fasterxml.jackson.core.JsonToken _nextToken
protected String _currText
protected com.fasterxml.jackson.core.util.ByteArrayBuilder _byteArrayBuilder
protected byte[] _binaryValue
getBinaryValue(com.fasterxml.jackson.core.Base64Variant)
will not need to decode data more
than once.public FromXmlParser(com.fasterxml.jackson.core.io.IOContext ctxt, int genericParserFeatures, int xmlFeatures, com.fasterxml.jackson.core.ObjectCodec codec, XMLStreamReader xmlReader)
public com.fasterxml.jackson.core.ObjectCodec getCodec()
getCodec
in class com.fasterxml.jackson.core.JsonParser
public void setCodec(com.fasterxml.jackson.core.ObjectCodec c)
setCodec
in class com.fasterxml.jackson.core.JsonParser
public void setXMLTextElementName(String name)
public boolean requiresCustomCodec()
ObjectCodec
(that is, XmlMapper
), so need to return true here.requiresCustomCodec
in class com.fasterxml.jackson.core.JsonParser
public FromXmlParser enable(FromXmlParser.Feature f)
public FromXmlParser disable(FromXmlParser.Feature f)
public final boolean isEnabled(FromXmlParser.Feature f)
public FromXmlParser configure(FromXmlParser.Feature f, boolean state)
public XMLStreamReader getStaxReader()
XMLStreamWriter
. Note that use of writer is
discouraged, and may interfere with processing of this writer;
however, occasionally it may be necessary.
Note: writer instance will always be of type
XMLStreamWriter2
(including
Typed Access API) so upcasts are safe.
public void addVirtualWrapping(Set<String> namesToWrap)
NOTE: this method is considered part of internal implementation interface, and it is NOT guaranteed to remain unchanged between minor versions (it is however expected not to change in patch versions). So if you have to use it, be prepared for possible additional work.
public String getCurrentName() throws IOException, com.fasterxml.jackson.core.JsonParseException
getCurrentName
in class com.fasterxml.jackson.core.base.ParserMinimalBase
IOException
com.fasterxml.jackson.core.JsonParseException
public void overrideCurrentName(String name)
overrideCurrentName
in class com.fasterxml.jackson.core.base.ParserMinimalBase
public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
close
in class com.fasterxml.jackson.core.base.ParserMinimalBase
IOException
public boolean isClosed()
isClosed
in class com.fasterxml.jackson.core.base.ParserMinimalBase
public XmlReadContext getParsingContext()
getParsingContext
in class com.fasterxml.jackson.core.base.ParserMinimalBase
public com.fasterxml.jackson.core.JsonLocation getTokenLocation()
getTokenLocation
in class com.fasterxml.jackson.core.JsonParser
public com.fasterxml.jackson.core.JsonLocation getCurrentLocation()
getCurrentLocation
in class com.fasterxml.jackson.core.JsonParser
public boolean isExpectedStartArrayToken()
isExpectedStartArrayToken
in class com.fasterxml.jackson.core.JsonParser
public com.fasterxml.jackson.core.JsonToken nextToken() throws IOException, com.fasterxml.jackson.core.JsonParseException
nextToken
in class com.fasterxml.jackson.core.base.ParserMinimalBase
IOException
com.fasterxml.jackson.core.JsonParseException
public String getText() throws IOException, com.fasterxml.jackson.core.JsonParseException
getText
in class com.fasterxml.jackson.core.base.ParserMinimalBase
IOException
com.fasterxml.jackson.core.JsonParseException
public final String getValueAsString() throws IOException, com.fasterxml.jackson.core.JsonParseException
getValueAsString
in class com.fasterxml.jackson.core.JsonParser
IOException
com.fasterxml.jackson.core.JsonParseException
public String getValueAsString(String defValue) throws IOException, com.fasterxml.jackson.core.JsonParseException
getValueAsString
in class com.fasterxml.jackson.core.base.ParserMinimalBase
IOException
com.fasterxml.jackson.core.JsonParseException
public char[] getTextCharacters() throws IOException, com.fasterxml.jackson.core.JsonParseException
getTextCharacters
in class com.fasterxml.jackson.core.base.ParserMinimalBase
IOException
com.fasterxml.jackson.core.JsonParseException
public int getTextLength() throws IOException, com.fasterxml.jackson.core.JsonParseException
getTextLength
in class com.fasterxml.jackson.core.base.ParserMinimalBase
IOException
com.fasterxml.jackson.core.JsonParseException
public int getTextOffset() throws IOException, com.fasterxml.jackson.core.JsonParseException
getTextOffset
in class com.fasterxml.jackson.core.base.ParserMinimalBase
IOException
com.fasterxml.jackson.core.JsonParseException
public boolean hasTextCharacters()
hasTextCharacters
in class com.fasterxml.jackson.core.base.ParserMinimalBase
public Object getEmbeddedObject() throws IOException, com.fasterxml.jackson.core.JsonParseException
getEmbeddedObject
in class com.fasterxml.jackson.core.JsonParser
IOException
com.fasterxml.jackson.core.JsonParseException
public byte[] getBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant) throws IOException, com.fasterxml.jackson.core.JsonParseException
getBinaryValue
in class com.fasterxml.jackson.core.base.ParserMinimalBase
IOException
com.fasterxml.jackson.core.JsonParseException
protected byte[] _decodeBase64(com.fasterxml.jackson.core.Base64Variant b64variant) throws IOException, com.fasterxml.jackson.core.JsonParseException
IOException
com.fasterxml.jackson.core.JsonParseException
protected void _reportInvalidBase64(com.fasterxml.jackson.core.Base64Variant b64variant, char ch, int bindex, String msg) throws com.fasterxml.jackson.core.JsonParseException
_reportInvalidBase64
in class com.fasterxml.jackson.core.base.ParserMinimalBase
bindex
- Relative index within base64 character unit; between 0
and 3 (as unit has exactly 4 characters)com.fasterxml.jackson.core.JsonParseException
protected void _reportBase64EOF() throws com.fasterxml.jackson.core.JsonParseException
_reportBase64EOF
in class com.fasterxml.jackson.core.base.ParserMinimalBase
com.fasterxml.jackson.core.JsonParseException
public BigInteger getBigIntegerValue() throws IOException, com.fasterxml.jackson.core.JsonParseException
getBigIntegerValue
in class com.fasterxml.jackson.core.JsonParser
IOException
com.fasterxml.jackson.core.JsonParseException
public BigDecimal getDecimalValue() throws IOException, com.fasterxml.jackson.core.JsonParseException
getDecimalValue
in class com.fasterxml.jackson.core.JsonParser
IOException
com.fasterxml.jackson.core.JsonParseException
public double getDoubleValue() throws IOException, com.fasterxml.jackson.core.JsonParseException
getDoubleValue
in class com.fasterxml.jackson.core.JsonParser
IOException
com.fasterxml.jackson.core.JsonParseException
public float getFloatValue() throws IOException, com.fasterxml.jackson.core.JsonParseException
getFloatValue
in class com.fasterxml.jackson.core.JsonParser
IOException
com.fasterxml.jackson.core.JsonParseException
public int getIntValue() throws IOException, com.fasterxml.jackson.core.JsonParseException
getIntValue
in class com.fasterxml.jackson.core.JsonParser
IOException
com.fasterxml.jackson.core.JsonParseException
public long getLongValue() throws IOException, com.fasterxml.jackson.core.JsonParseException
getLongValue
in class com.fasterxml.jackson.core.JsonParser
IOException
com.fasterxml.jackson.core.JsonParseException
public com.fasterxml.jackson.core.JsonParser.NumberType getNumberType() throws IOException, com.fasterxml.jackson.core.JsonParseException
getNumberType
in class com.fasterxml.jackson.core.JsonParser
IOException
com.fasterxml.jackson.core.JsonParseException
public Number getNumberValue() throws IOException, com.fasterxml.jackson.core.JsonParseException
getNumberValue
in class com.fasterxml.jackson.core.JsonParser
IOException
com.fasterxml.jackson.core.JsonParseException
protected void _handleEOF() throws com.fasterxml.jackson.core.JsonParseException
_handleEOF
in class com.fasterxml.jackson.core.base.ParserMinimalBase
com.fasterxml.jackson.core.JsonParseException
protected void _releaseBuffers() throws IOException
IOException
protected com.fasterxml.jackson.core.util.ByteArrayBuilder _getByteArrayBuilder()
protected boolean _isEmpty(String str)
Copyright © 2012-2013 FasterXML. All Rights Reserved.