Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.fasterxml.jackson.core.util
Class JsonParserSequence

    java.lang.Object
      com.fasterxml.jackson.core.JsonParser
          com.fasterxml.jackson.core.util.JsonParserDelegate
              com.fasterxml.jackson.core.util.JsonParserSequence

All Implemented Interfaces:
  Versioned, Closeable

    public class JsonParserSequence

extends JsonParserDelegate

Helper class that can be used to sequence multiple physical `JsonParser`s to create a single logical sequence of tokens, as a single `JsonParser`.

Fairly simple use of `JsonParserDelegate`: only need to override `nextToken()` to handle transition

Nested Class Summary

Nested classes/interfaces inherited from class com.fasterxml.jackson.core.JsonParser
`JsonParser.Feature, JsonParser.NumberType`

Field Summary
`protected int` | `_nextParser` Index of the next parser in `_parsers`.
`protected JsonParser[]` | `_parsers` Parsers other than the first one (which is initially assigned as delegate)

Fields inherited from class com.fasterxml.jackson.core.util.JsonParserDelegate
`delegate`

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

Constructor Summary
`protected` | `JsonParserSequence(JsonParser[] parsers)`

Method Summary
`protected void` | `addFlattenedActiveParsers(List<JsonParser> result)`
`void` | `close()` Closes the parser so that no further iteration or data access can be made; will also close the underlying input source if parser either owns the input source, or feature `JsonParser.Feature.AUTO_CLOSE_SOURCE` is enabled.
`int` | `containedParsersCount()` Method that is most useful for debugging or testing; returns actual number of underlying parsers sequence was constructed with (nor just ones remaining active)
`static JsonParserSequence` | `createFlattened(JsonParser first, JsonParser second)` Method that will construct a parser (possibly a sequence) that contains all given sub-parsers.
`JsonToken` | `nextToken()` Main iteration method, which will advance stream enough to determine type of the next token, if any.
`protected boolean` | `switchToNext()` Method that will switch active parser from the current one to next parser in sequence, if there is another parser left, making this the new delegate.

Methods inherited from class com.fasterxml.jackson.core.util.JsonParserDelegate
`canUseSchema, clearCurrentToken, disable, enable, getBigIntegerValue, getBinaryValue, getBooleanValue, getByteValue, getCodec, getCurrentLocation, getCurrentName, getCurrentToken, getDecimalValue, getDoubleValue, getEmbeddedObject, getFloatValue, getInputSource, getIntValue, getLastClearedToken, getLongValue, getNumberType, getNumberValue, getParsingContext, getSchema, getShortValue, getText, getTextCharacters, getTextLength, getTextOffset, getTokenLocation, getValueAsBoolean, getValueAsBoolean, getValueAsDouble, getValueAsDouble, getValueAsInt, getValueAsInt, getValueAsLong, getValueAsLong, getValueAsString, getValueAsString, hasCurrentToken, hasTextCharacters, isClosed, isEnabled, nextValue, overrideCurrentName, readBinaryValue, requiresCustomCodec, setCodec, setSchema, skipChildren, version`

Methods inherited from class com.fasterxml.jackson.core.JsonParser
`_constructError, _reportUnsupportedOperation, configure, getBinaryValue, isExpectedStartArrayToken, nextBooleanValue, nextFieldName, nextIntValue, nextLongValue, nextTextValue, readBinaryValue, readValueAs, readValueAs, readValueAsTree, readValuesAs, readValuesAs, releaseBuffered, releaseBuffered`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### _parsers

    protected final JsonParser[] _parsers

  Parsers other than the first one (which is initially assigned as delegate)

### _nextParser

    protected int _nextParser

  Index of the next parser in `_parsers`.

Constructor Detail

### JsonParserSequence

    protected JsonParserSequence(JsonParser[] parsers)

Method Detail

### createFlattened

    public static JsonParserSequence createFlattened(JsonParser first,
                                                     JsonParser second)

  Method that will construct a parser (possibly a sequence) that contains all given sub-parsers. All parsers given are checked to see if they are sequences: and if so, they will be "flattened", that is, contained parsers are directly added in a new sequence instead of adding sequences within sequences. This is done to minimize delegation depth, ideally only having just a single level of delegation.

### addFlattenedActiveParsers

    protected void addFlattenedActiveParsers(List<JsonParser> result)

### close

    public void close()
               throws IOException

  Description copied from class: `JsonParser`
  Closes the parser so that no further iteration or data access can be made; will also close the underlying input source if parser either owns the input source, or feature `JsonParser.Feature.AUTO_CLOSE_SOURCE` is enabled. Whether parser owns the input source depends on factory method that was used to construct instance (so check `JsonFactory` for details, but the general idea is that if caller passes in closable resource (such as `InputStream` or `Reader`) parser does NOT own the source; but if it passes a reference (such as `File` or `URL` and creates stream or reader it does own them.

  Specified by:
    `close` in interface `Closeable`
  Overrides:
    `close` in class `JsonParserDelegate`
  Throws:
    `IOException`

### nextToken

    public JsonToken nextToken()
                        throws IOException,
                               JsonParseException

  Description copied from class: `JsonParser`
  Main iteration method, which will advance stream enough to determine type of the next token, if any. If none remaining (stream has no content other than possible white space before ending), null will be returned.

  Overrides:
    `nextToken` in class `JsonParserDelegate`
  Returns:
    Next token from the stream, if any found, or null to indicate end-of-input
  Throws:
    `IOException`
    `JsonParseException`

### containedParsersCount

    public int containedParsersCount()

  Method that is most useful for debugging or testing; returns actual number of underlying parsers sequence was constructed with (nor just ones remaining active)

### switchToNext

    protected boolean switchToNext()

  Method that will switch active parser from the current one to next parser in sequence, if there is another parser left, making this the new delegate. Old delegate is returned if switch succeeds.

  Returns:
    True if switch succeeded; false otherwise

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2012 FasterXML. All Rights Reserved.