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 int |
_formatFeatures
Bit flag composed of bits that indicate which
FromXmlParser.Features
are enabled. |
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 XmlTokenStream |
_xmlTokens |
static String |
DEFAULT_UNNAMED_TEXT_PROPERTY
The default name placeholder for XML text segments is empty
String ("").
|
_currToken, _lastClearedToken, BD_MAX_INT, BD_MAX_LONG, BD_MIN_INT, BD_MIN_LONG, BI_MAX_INT, BI_MAX_LONG, BI_MIN_INT, BI_MIN_LONG, CHAR_NULL, INT_0, INT_9, INT_APOS, INT_ASTERISK, INT_BACKSLASH, INT_COLON, INT_COMMA, INT_CR, INT_e, INT_E, INT_HASH, INT_LBRACKET, INT_LCURLY, INT_LF, INT_MINUS, INT_PERIOD, INT_PLUS, INT_QUOTE, INT_RBRACKET, INT_RCURLY, INT_SLASH, INT_SPACE, INT_TAB, MAX_ERROR_TOKEN_LENGTH, MAX_INT_D, MAX_INT_L, MAX_LONG_D, MIN_INT_D, MIN_INT_L, MIN_LONG_D, NO_BYTES, NO_INTS, NR_BIGDECIMAL, NR_BIGINT, NR_DOUBLE, NR_FLOAT, NR_INT, NR_LONG, NR_UNKNOWN| 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.
|
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 |
getFormatFeatures() |
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() |
int |
getText(Writer writer) |
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'.
|
String |
nextTextValue()
Method overridden to support more reliable deserialization of
String collections.
|
com.fasterxml.jackson.core.JsonToken |
nextToken() |
void |
overrideCurrentName(String name) |
com.fasterxml.jackson.core.JsonParser |
overrideFormatFeatures(int values,
int mask) |
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) |
com.fasterxml.jackson.core.Version |
version() |
_ascii, _asciiBytes, _constructError, _decodeBase64, _getCharDesc, _hasTextualNull, _longIntegerDesc, _longNumberDesc, _reportError, _reportError, _reportError, _reportInputCoercion, _reportInvalidEOF, _reportInvalidEOF, _reportInvalidEOF, _reportInvalidEOFInValue, _reportInvalidEOFInValue, _reportMissingRootWS, _reportUnexpectedChar, _throwInternal, _throwInvalidSpace, _wrapError, clearCurrentToken, currentToken, currentTokenId, getCurrentToken, getCurrentTokenId, getLastClearedToken, getValueAsBoolean, getValueAsDouble, getValueAsInt, getValueAsInt, getValueAsLong, getValueAsLong, hasCurrentToken, hasToken, hasTokenId, isExpectedStartObjectToken, nextValue, reportInvalidNumber, reportOverflowInt, reportOverflowInt, reportOverflowInt, reportOverflowLong, reportOverflowLong, reportOverflowLong, reportUnexpectedNumberChar, skipChildren_codec, _constructError, _reportUnsupportedOperation, canParseAsync, canReadObjectId, canReadTypeId, canUseSchema, configure, currentName, disable, enable, finishToken, getBinaryValue, getBooleanValue, getByteValue, getCurrentValue, getFeatureMask, getInputSource, getNonBlockingInputFeeder, getObjectId, getSchema, getShortValue, getTypeId, getValueAsBoolean, getValueAsDouble, isEnabled, isEnabled, isNaN, nextBooleanValue, nextFieldName, nextFieldName, nextIntValue, nextLongValue, overrideStdFeatures, readBinaryValue, readBinaryValue, readValueAs, readValueAs, readValueAsTree, readValuesAs, readValuesAs, releaseBuffered, releaseBuffered, setCurrentValue, setFeatureMask, setRequestPayloadOnError, setRequestPayloadOnError, setRequestPayloadOnError, setSchemapublic 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 _formatFeatures
FromXmlParser.Features
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)
throws IOException
IOExceptionpublic com.fasterxml.jackson.core.Version version()
version in interface com.fasterxml.jackson.core.Versionedversion in class com.fasterxml.jackson.core.JsonParserpublic com.fasterxml.jackson.core.ObjectCodec getCodec()
getCodec in class com.fasterxml.jackson.core.JsonParserpublic void setCodec(com.fasterxml.jackson.core.ObjectCodec c)
setCodec in class com.fasterxml.jackson.core.JsonParserpublic void setXMLTextElementName(String name)
public boolean requiresCustomCodec()
ObjectCodec
(that is, XmlMapper), so need to return true here.requiresCustomCodec in class com.fasterxml.jackson.core.JsonParserpublic 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 int getFormatFeatures()
getFormatFeatures in class com.fasterxml.jackson.core.JsonParserpublic com.fasterxml.jackson.core.JsonParser overrideFormatFeatures(int values,
int mask)
overrideFormatFeatures in class com.fasterxml.jackson.core.JsonParserpublic 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
getCurrentName in class com.fasterxml.jackson.core.base.ParserMinimalBaseIOExceptionpublic void overrideCurrentName(String name)
overrideCurrentName in class com.fasterxml.jackson.core.base.ParserMinimalBasepublic void close()
throws IOException
close in interface Closeableclose in interface AutoCloseableclose in class com.fasterxml.jackson.core.base.ParserMinimalBaseIOExceptionpublic boolean isClosed()
isClosed in class com.fasterxml.jackson.core.base.ParserMinimalBasepublic XmlReadContext getParsingContext()
getParsingContext in class com.fasterxml.jackson.core.base.ParserMinimalBasepublic com.fasterxml.jackson.core.JsonLocation getTokenLocation()
getTokenLocation in class com.fasterxml.jackson.core.JsonParserpublic com.fasterxml.jackson.core.JsonLocation getCurrentLocation()
getCurrentLocation in class com.fasterxml.jackson.core.JsonParserpublic boolean isExpectedStartArrayToken()
isExpectedStartArrayToken in class com.fasterxml.jackson.core.base.ParserMinimalBasepublic com.fasterxml.jackson.core.JsonToken nextToken()
throws IOException
nextToken in class com.fasterxml.jackson.core.base.ParserMinimalBaseIOExceptionpublic String nextTextValue() throws IOException
nextTextValue in class com.fasterxml.jackson.core.JsonParserIOExceptionpublic String getText() throws IOException
getText in class com.fasterxml.jackson.core.base.ParserMinimalBaseIOExceptionpublic final String getValueAsString() throws IOException
getValueAsString in class com.fasterxml.jackson.core.base.ParserMinimalBaseIOExceptionpublic String getValueAsString(String defValue) throws IOException
getValueAsString in class com.fasterxml.jackson.core.base.ParserMinimalBaseIOExceptionpublic char[] getTextCharacters()
throws IOException
getTextCharacters in class com.fasterxml.jackson.core.base.ParserMinimalBaseIOExceptionpublic int getTextLength()
throws IOException
getTextLength in class com.fasterxml.jackson.core.base.ParserMinimalBaseIOExceptionpublic int getTextOffset()
throws IOException
getTextOffset in class com.fasterxml.jackson.core.base.ParserMinimalBaseIOExceptionpublic boolean hasTextCharacters()
hasTextCharacters in class com.fasterxml.jackson.core.base.ParserMinimalBasepublic int getText(Writer writer) throws IOException
getText in class com.fasterxml.jackson.core.JsonParserIOExceptionpublic Object getEmbeddedObject() throws IOException
getEmbeddedObject in class com.fasterxml.jackson.core.JsonParserIOExceptionpublic byte[] getBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant)
throws IOException
getBinaryValue in class com.fasterxml.jackson.core.base.ParserMinimalBaseIOExceptionprotected byte[] _decodeBase64(com.fasterxml.jackson.core.Base64Variant b64variant)
throws IOException
IOExceptionpublic BigInteger getBigIntegerValue() throws IOException
getBigIntegerValue in class com.fasterxml.jackson.core.JsonParserIOExceptionpublic BigDecimal getDecimalValue() throws IOException
getDecimalValue in class com.fasterxml.jackson.core.JsonParserIOExceptionpublic double getDoubleValue()
throws IOException
getDoubleValue in class com.fasterxml.jackson.core.JsonParserIOExceptionpublic float getFloatValue()
throws IOException
getFloatValue in class com.fasterxml.jackson.core.JsonParserIOExceptionpublic int getIntValue()
throws IOException
getIntValue in class com.fasterxml.jackson.core.JsonParserIOExceptionpublic long getLongValue()
throws IOException
getLongValue in class com.fasterxml.jackson.core.JsonParserIOExceptionpublic com.fasterxml.jackson.core.JsonParser.NumberType getNumberType()
throws IOException
getNumberType in class com.fasterxml.jackson.core.JsonParserIOExceptionpublic Number getNumberValue() throws IOException
getNumberValue in class com.fasterxml.jackson.core.JsonParserIOExceptionprotected void _handleEOF()
throws com.fasterxml.jackson.core.JsonParseException
_handleEOF in class com.fasterxml.jackson.core.base.ParserMinimalBasecom.fasterxml.jackson.core.JsonParseExceptionprotected void _releaseBuffers()
throws IOException
IOExceptionprotected com.fasterxml.jackson.core.util.ByteArrayBuilder _getByteArrayBuilder()
protected boolean _isEmpty(String str)
Copyright © 2020 FasterXML. All rights reserved.