Class YAMLParser

java.lang.Object
com.fasterxml.jackson.core.JsonParser
com.fasterxml.jackson.core.base.ParserMinimalBase
com.fasterxml.jackson.core.base.ParserBase
com.fasterxml.jackson.dataformat.yaml.YAMLParser
All Implemented Interfaces:
com.fasterxml.jackson.core.Versioned, Closeable, AutoCloseable

public class YAMLParser extends com.fasterxml.jackson.core.base.ParserBase
JsonParser implementation used to expose YAML documents in form that allows other Jackson functionality to process YAML content, such as binding POJOs to and from it, and building tree representations.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    Enumeration that defines all togglable features for YAML parsers.

    Nested classes/interfaces inherited from class com.fasterxml.jackson.core.JsonParser

    com.fasterxml.jackson.core.JsonParser.NumberType
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected String
    For some tokens (specifically, numbers), we'll have cleaned up version, mostly free of underscores
    protected String
    Anchor for the value that parser currently points to: in case of structured types, value whose first token current token is.
    protected String
    Let's also have a local copy of the current field name
    protected boolean
    Flag that is set when current token was derived from an Alias (reference to another value's anchor)
    protected int
     
    protected org.yaml.snakeyaml.events.Event
    Keep track of the last event read, to get access to Location info
    protected com.fasterxml.jackson.core.ObjectCodec
    Codec used for data binding when (if) requested.
    protected final Reader
    Need to keep track of underlying Reader to be able to auto-close it (if required to)
    protected String
    We need to keep track of text values.
    protected final org.yaml.snakeyaml.parser.ParserImpl
     
    protected final org.yaml.snakeyaml.resolver.Resolver
     
    private static final Pattern
    We will use pattern that is bit stricter than YAML definition, but we will still allow things like extra '_' in there.

    Fields inherited from class com.fasterxml.jackson.core.base.ParserBase

    _binaryValue, _byteArrayBuilder, _closed, _currInputProcessed, _currInputRow, _currInputRowStart, _expLength, _fractLength, _inputEnd, _inputPtr, _intLength, _ioContext, _nameCopied, _nameCopyBuffer, _nextToken, _numberBigDecimal, _numberBigInt, _numberDouble, _numberInt, _numberLong, _numberNegative, _numTypesValid, _parsingContext, _textBuffer, _tokenInputCol, _tokenInputRow, _tokenInputTotal

    Fields inherited from class com.fasterxml.jackson.core.base.ParserMinimalBase

    _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

    Fields inherited from class com.fasterxml.jackson.core.JsonParser

    _features, _requestPayload
  • Constructor Summary

    Constructors
    Constructor
    Description
    YAMLParser(com.fasterxml.jackson.core.io.IOContext ctxt, com.fasterxml.jackson.core.util.BufferRecycler br, int parserFeatures, int formatFeatures, com.fasterxml.jackson.core.ObjectCodec codec, Reader reader)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    private com.fasterxml.jackson.core.JsonToken
     
    private com.fasterxml.jackson.core.JsonToken
    Helper method used to clean up YAML floating-point value so it can be parsed using standard JDK classes.
    protected void
     
    protected com.fasterxml.jackson.core.JsonToken
     
    protected com.fasterxml.jackson.core.JsonToken
    _decodeNumberScalar(String value, int len)
     
    protected com.fasterxml.jackson.core.JsonToken
    _decodeScalar(org.yaml.snakeyaml.events.ScalarEvent scalar)
     
    protected com.fasterxml.jackson.core.JsonLocation
    _locationFor(org.yaml.snakeyaml.error.Mark m)
     
    protected Boolean
    _matchYAMLBoolean(String value, int len)
     
    protected int
     
    protected void
    _parseNumericValue(int expType)
     
    boolean
     
    boolean
     
    com.fasterxml.jackson.core.JsonParser
    configure(YAMLParser.Feature f, boolean state)
    Method for enabling or disabling specified CSV feature (check YAMLParser.Feature for list of features)
    com.fasterxml.jackson.core.JsonParser
    Method for disabling specified CSV feature (check YAMLParser.Feature for list of features)
    com.fasterxml.jackson.core.JsonParser
    Method for enabling specified CSV feature (check YAMLParser.Feature for list of features)
    com.fasterxml.jackson.core.ObjectCodec
     
    Deprecated.
    Since 2.3 (was added in 2.1) -- use getObjectId() instead
    com.fasterxml.jackson.core.JsonLocation
     
     
     
    int
     
     
     
    int
    getText(Writer writer)
     
    char[]
     
    int
     
    int
     
    com.fasterxml.jackson.core.JsonLocation
     
     
    boolean
     
    boolean
    Method that can be used to check whether current token was created from YAML Alias token (reference to an anchor).
    boolean
    Method for checking whether specified CSV YAMLParser.Feature is enabled.
    com.fasterxml.jackson.core.JsonToken
     
    com.fasterxml.jackson.core.JsonParser
    overrideFormatFeatures(int values, int mask)
     
    int
    readBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant, OutputStream out)
     
    void
    setCodec(com.fasterxml.jackson.core.ObjectCodec c)
     
    com.fasterxml.jackson.core.Version
     

    Methods inherited from class com.fasterxml.jackson.core.base.ParserBase

    _checkStdFeatureChanges, _decodeBase64Escape, _decodeBase64Escape, _decodeEscaped, _eofAsNextChar, _finishString, _getByteArrayBuilder, _getSourceReference, _handleBase64MissingPadding, _handleEOF, _handleUnrecognizedCharacterEscape, _releaseBuffers, _reportMismatchedEndMarker, _reportTooLongIntegral, _throwUnquotedSpace, _validJsonTokenList, _validJsonValueList, close, convertNumberToBigDecimal, convertNumberToBigInteger, convertNumberToDouble, convertNumberToInt, convertNumberToLong, disable, enable, getBigIntegerValue, getBinaryValue, getCurrentValue, getDecimalValue, getDoubleValue, getFloatValue, getIntValue, getLongValue, getNumberType, getNumberValue, getParsingContext, getTokenCharacterOffset, getTokenColumnNr, getTokenLineNr, growArrayBy, isClosed, isNaN, loadMore, loadMoreGuaranteed, overrideCurrentName, overrideStdFeatures, reportInvalidBase64Char, reportInvalidBase64Char, reset, resetAsNaN, resetFloat, resetInt, setCurrentValue, setFeatureMask

    Methods inherited from class com.fasterxml.jackson.core.base.ParserMinimalBase

    _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, getValueAsString, getValueAsString, hasCurrentToken, hasToken, hasTokenId, isExpectedStartArrayToken, isExpectedStartObjectToken, nextValue, reportInvalidNumber, reportOverflowInt, reportOverflowInt, reportOverflowInt, reportOverflowLong, reportOverflowLong, reportOverflowLong, reportUnexpectedNumberChar, skipChildren

    Methods inherited from class com.fasterxml.jackson.core.JsonParser

    _codec, _constructError, _reportUnsupportedOperation, canParseAsync, canUseSchema, configure, currentName, finishToken, getBinaryValue, getBooleanValue, getByteValue, getFeatureMask, getInputSource, getNonBlockingInputFeeder, getSchema, getShortValue, getValueAsBoolean, getValueAsDouble, isEnabled, isEnabled, nextBooleanValue, nextFieldName, nextFieldName, nextIntValue, nextLongValue, nextTextValue, readBinaryValue, readValueAs, readValueAs, readValueAsTree, readValuesAs, readValuesAs, releaseBuffered, releaseBuffered, requiresCustomCodec, setRequestPayloadOnError, setRequestPayloadOnError, setRequestPayloadOnError, setSchema

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • PATTERN_FLOAT

      private static final Pattern PATTERN_FLOAT
      We will use pattern that is bit stricter than YAML definition, but we will still allow things like extra '_' in there.
    • _objectCodec

      protected com.fasterxml.jackson.core.ObjectCodec _objectCodec
      Codec used for data binding when (if) requested.
    • _formatFeatures

      protected int _formatFeatures
    • _reader

      protected final Reader _reader
      Need to keep track of underlying Reader to be able to auto-close it (if required to)
    • _yamlParser

      protected final org.yaml.snakeyaml.parser.ParserImpl _yamlParser
    • _yamlResolver

      protected final org.yaml.snakeyaml.resolver.Resolver _yamlResolver
    • _lastEvent

      protected org.yaml.snakeyaml.events.Event _lastEvent
      Keep track of the last event read, to get access to Location info
    • _textValue

      protected String _textValue
      We need to keep track of text values.
    • _cleanedTextValue

      protected String _cleanedTextValue
      For some tokens (specifically, numbers), we'll have cleaned up version, mostly free of underscores
    • _currentFieldName

      protected String _currentFieldName
      Let's also have a local copy of the current field name
    • _currentIsAlias

      protected boolean _currentIsAlias
      Flag that is set when current token was derived from an Alias (reference to another value's anchor)
      Since:
      2.1
    • _currentAnchor

      protected String _currentAnchor
      Anchor for the value that parser currently points to: in case of structured types, value whose first token current token is.
  • Constructor Details

    • YAMLParser

      public YAMLParser(com.fasterxml.jackson.core.io.IOContext ctxt, com.fasterxml.jackson.core.util.BufferRecycler br, int parserFeatures, int formatFeatures, com.fasterxml.jackson.core.ObjectCodec codec, Reader reader)
  • Method Details

    • getCodec

      public com.fasterxml.jackson.core.ObjectCodec getCodec()
      Specified by:
      getCodec in class com.fasterxml.jackson.core.JsonParser
    • setCodec

      public void setCodec(com.fasterxml.jackson.core.ObjectCodec c)
      Specified by:
      setCodec in class com.fasterxml.jackson.core.JsonParser
    • isCurrentAlias

      public boolean isCurrentAlias()
      Method that can be used to check whether current token was created from YAML Alias token (reference to an anchor).
      Since:
      2.1
    • getCurrentAnchor

      @Deprecated public String getCurrentAnchor()
      Deprecated.
      Since 2.3 (was added in 2.1) -- use getObjectId() instead
      Method that can be used to check if the current token has an associated anchor (id to reference via Alias)
    • version

      public com.fasterxml.jackson.core.Version version()
      Specified by:
      version in interface com.fasterxml.jackson.core.Versioned
      Overrides:
      version in class com.fasterxml.jackson.core.base.ParserBase
    • _closeInput

      protected void _closeInput() throws IOException
      Specified by:
      _closeInput in class com.fasterxml.jackson.core.base.ParserBase
      Throws:
      IOException
    • getFormatFeatures

      public int getFormatFeatures()
      Overrides:
      getFormatFeatures in class com.fasterxml.jackson.core.JsonParser
    • overrideFormatFeatures

      public com.fasterxml.jackson.core.JsonParser overrideFormatFeatures(int values, int mask)
      Overrides:
      overrideFormatFeatures in class com.fasterxml.jackson.core.JsonParser
    • enable

      public com.fasterxml.jackson.core.JsonParser enable(YAMLParser.Feature f)
      Method for enabling specified CSV feature (check YAMLParser.Feature for list of features)
    • disable

      public com.fasterxml.jackson.core.JsonParser disable(YAMLParser.Feature f)
      Method for disabling specified CSV feature (check YAMLParser.Feature for list of features)
    • configure

      public com.fasterxml.jackson.core.JsonParser configure(YAMLParser.Feature f, boolean state)
      Method for enabling or disabling specified CSV feature (check YAMLParser.Feature for list of features)
    • isEnabled

      public boolean isEnabled(YAMLParser.Feature f)
      Method for checking whether specified CSV YAMLParser.Feature is enabled.
    • getTokenLocation

      public com.fasterxml.jackson.core.JsonLocation getTokenLocation()
      Overrides:
      getTokenLocation in class com.fasterxml.jackson.core.base.ParserBase
    • getCurrentLocation

      public com.fasterxml.jackson.core.JsonLocation getCurrentLocation()
      Overrides:
      getCurrentLocation in class com.fasterxml.jackson.core.base.ParserBase
    • _locationFor

      protected com.fasterxml.jackson.core.JsonLocation _locationFor(org.yaml.snakeyaml.error.Mark m)
    • nextToken

      public com.fasterxml.jackson.core.JsonToken nextToken() throws IOException
      Specified by:
      nextToken in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • _decodeScalar

      protected com.fasterxml.jackson.core.JsonToken _decodeScalar(org.yaml.snakeyaml.events.ScalarEvent scalar) throws IOException
      Throws:
      IOException
    • _matchYAMLBoolean

      protected Boolean _matchYAMLBoolean(String value, int len)
    • _decodeNumberScalar

      protected com.fasterxml.jackson.core.JsonToken _decodeNumberScalar(String value, int len)
    • _decodeIntWithUnderscores

      protected com.fasterxml.jackson.core.JsonToken _decodeIntWithUnderscores(String value, int len)
    • hasTextCharacters

      public boolean hasTextCharacters()
      Overrides:
      hasTextCharacters in class com.fasterxml.jackson.core.base.ParserBase
    • getText

      public String getText() throws IOException
      Specified by:
      getText in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • getCurrentName

      public String getCurrentName() throws IOException
      Overrides:
      getCurrentName in class com.fasterxml.jackson.core.base.ParserBase
      Throws:
      IOException
    • getTextCharacters

      public char[] getTextCharacters() throws IOException
      Specified by:
      getTextCharacters in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • getTextLength

      public int getTextLength() throws IOException
      Specified by:
      getTextLength in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • getTextOffset

      public int getTextOffset() throws IOException
      Specified by:
      getTextOffset in class com.fasterxml.jackson.core.base.ParserMinimalBase
      Throws:
      IOException
    • getText

      public int getText(Writer writer) throws IOException
      Overrides:
      getText in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • getEmbeddedObject

      public Object getEmbeddedObject() throws IOException
      Overrides:
      getEmbeddedObject in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • readBinaryValue

      public int readBinaryValue(com.fasterxml.jackson.core.Base64Variant b64variant, OutputStream out) throws IOException
      Overrides:
      readBinaryValue in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
    • _parseNumericValue

      protected void _parseNumericValue(int expType) throws IOException
      Overrides:
      _parseNumericValue in class com.fasterxml.jackson.core.base.ParserBase
      Throws:
      IOException
    • _parseIntValue

      protected int _parseIntValue() throws IOException
      Overrides:
      _parseIntValue in class com.fasterxml.jackson.core.base.ParserBase
      Throws:
      IOException
    • canReadObjectId

      public boolean canReadObjectId()
      Overrides:
      canReadObjectId in class com.fasterxml.jackson.core.JsonParser
    • canReadTypeId

      public boolean canReadTypeId()
      Overrides:
      canReadTypeId in class com.fasterxml.jackson.core.JsonParser
    • getObjectId

      public String getObjectId() throws IOException, com.fasterxml.jackson.core.JsonGenerationException
      Overrides:
      getObjectId in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
      com.fasterxml.jackson.core.JsonGenerationException
    • getTypeId

      public String getTypeId() throws IOException, com.fasterxml.jackson.core.JsonGenerationException
      Overrides:
      getTypeId in class com.fasterxml.jackson.core.JsonParser
      Throws:
      IOException
      com.fasterxml.jackson.core.JsonGenerationException
    • _cleanYamlInt

      private com.fasterxml.jackson.core.JsonToken _cleanYamlInt(String str)
      Helper method used to clean up YAML floating-point value so it can be parsed using standard JDK classes. Currently this just means stripping out optional underscores.
    • _cleanYamlFloat

      private com.fasterxml.jackson.core.JsonToken _cleanYamlFloat(String str)