ObjectReader (Jackson JSON Processor)
Date: 2013-07-14

org.codehaus.jackson.map

## Class ObjectReader

- java.lang.Object
- - org.codehaus.jackson.ObjectCodec
  - - org.codehaus.jackson.map.ObjectReader

- All Implemented Interfaces:
    Versioned

      public class ObjectReader
      extends ObjectCodec
      implements Versioned

  Builder object that can be used for per-serialization configuration of deserialization parameters, such as root type to use or object to update (instead of constructing new instance). Uses "fluid" (aka builder) pattern so that instances are immutable (and thus fully thread-safe with no external synchronization); new instances are constructed for different configurations. Instances are initially constructed by `ObjectMapper` and can be reused.
  Since:
    1.6
  Author:
    tatu

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected DeserializationConfig` | `_config` General serialization configuration settings; while immutable, can use copy-constructor to create modified instances as necessary.
    `protected InjectableValues` | `_injectableValues` Values that can be injected during deserialization, if any.
    `protected JsonFactory` | `_jsonFactory` Factory used for constructing `JsonGenerator`s
    `protected DeserializerProvider` | `_provider`
    `protected ConcurrentHashMap<JavaType,JsonDeserializer<Object>>` | `_rootDeserializers` Root-level cached deserializers
    `protected FormatSchema` | `_schema` When using data format that uses a schema, schema is passed to parser.
    `protected boolean` | `_unwrapRoot` Flag that indicates whether root values are expected to be unwrapped or not
    `protected Object` | `_valueToUpdate` Instance to update with data binding; if any.
    `protected JavaType` | `_valueType` Declared type of value to instantiate during deserialization.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `ObjectReader(ObjectMapper mapper, DeserializationConfig config)` Constructor used by `ObjectMapper` for initial instantiation
    `protected` | `ObjectReader(ObjectMapper mapper, DeserializationConfig config, JavaType valueType, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues)`
    `protected` | `ObjectReader(ObjectReader base, DeserializationConfig config, JavaType valueType, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues)` Copy constructor used for building variations.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Object` | `_bind(JsonParser jp)` Actual implementation of value reading+binding operation.
    `protected Object` | `_bindAndClose(JsonParser jp)`
    `protected JsonNode` | `_bindAndCloseAsTree(JsonParser jp)`
    `protected JsonNode` | `_bindAsTree(JsonParser jp)`
    `protected DeserializationContext` | `_createDeserializationContext(JsonParser jp, DeserializationConfig cfg)`
    `protected JsonDeserializer<Object>` | `_findRootDeserializer(DeserializationConfig cfg, JavaType valueType)` Method called to locate deserializer for the passed root-level value.
    `protected static JsonToken` | `_initForReading(JsonParser jp)`
    `protected Object` | `_unwrapAndDeserialize(JsonParser jp, DeserializationContext ctxt, JavaType rootType, JsonDeserializer<Object> deser)`
    `JsonNode` | `createArrayNode()` Method for construct root level Array nodes for Tree Model instances.
    `JsonNode` | `createObjectNode()` Method for construct root level Object nodes for Tree Model instances.
    `JsonNode` | `readTree(InputStream in)` Method that reads content from given input source, using configuration of this reader, and binds it as JSON Tree.
    `JsonNode` | `readTree(JsonParser jp)` Convenience method that binds content read using given parser, using configuration of this reader, except that content is bound as JSON tree instead of configured root value type.
    `JsonNode` | `readTree(Reader r)` Method that reads content from given input source, using configuration of this reader, and binds it as JSON Tree.
    `JsonNode` | `readTree(String content)` Method that reads content from given JSON input String, using configuration of this reader, and binds it as JSON Tree.
    `<T> T` | `readValue(byte[] src)` Method that binds content read from given byte array, using configuration of this reader.
    `<T> T` | `readValue(byte[] src, int offset, int length)` Method that binds content read from given byte array, using configuration of this reader.
    `<T> T` | `readValue(File src)`
    `<T> T` | `readValue(InputStream src)` Method that binds content read from given input source, using configuration of this reader.
    `<T> T` | `readValue(JsonNode src)` Convenience method for converting results from given JSON tree into given value type.
    `<T> T` | `readValue(JsonParser jp)` Method that binds content read using given parser, using configuration of this reader, including expected result type.
    `<T> T` | `readValue(JsonParser jp, Class<T> valueType)` Convenience method that binds content read using given parser, using configuration of this reader, except that expected value type is specified with the call (instead of currently configured root type).
    `<T> T` | `readValue(JsonParser jp, JavaType valueType)` Convenience method that binds content read using given parser, using configuration of this reader, except that expected value type is specified with the call (instead of currently configured root type).
    `<T> T` | `readValue(JsonParser jp, TypeReference<?> valueTypeRef)` Convenience method that binds content read using given parser, using configuration of this reader, except that expected value type is specified with the call (instead of currently configured root type).
    `<T> T` | `readValue(Reader src)` Method that binds content read from given input source, using configuration of this reader.
    `<T> T` | `readValue(String src)` Method that binds content read from given JSON string, using configuration of this reader.
    `<T> T` | `readValue(URL src)` Method that binds content read from given input source, using configuration of this reader.
    `<T> MappingIterator<T>` | `readValues(byte[] src)` Since 1.9.3
    `<T> MappingIterator<T>` | `readValues(byte[] src, int offset, int length)` Method for reading sequence of Objects from parser stream.
    `<T> MappingIterator<T>` | `readValues(File src)` Method for reading sequence of Objects from parser stream.
    `<T> MappingIterator<T>` | `readValues(InputStream src)` Method for reading sequence of Objects from parser stream.
    `<T> MappingIterator<T>` | `readValues(JsonParser jp)` Method for reading sequence of Objects from parser stream.
    `<T> Iterator<T>` | `readValues(JsonParser jp, Class<T> valueType)` Convenience method that is equivalent to:
    `<T> Iterator<T>` | `readValues(JsonParser jp, JavaType valueType)` Convenience method that is equivalent to:
    `<T> Iterator<T>` | `readValues(JsonParser jp, TypeReference<?> valueTypeRef)` Convenience method that is equivalent to:
    `<T> MappingIterator<T>` | `readValues(Reader src)` Method for reading sequence of Objects from parser stream.
    `<T> MappingIterator<T>` | `readValues(String json)` Method for reading sequence of Objects from parser stream.
    `<T> MappingIterator<T>` | `readValues(URL src)` Method for reading sequence of Objects from parser stream.
    `JsonParser` | `treeAsTokens(JsonNode n)` Method for constructing a `JsonParser` for reading contents of a JSON tree, as if it was external serialized JSON content.
    `<T> T` | `treeToValue(JsonNode n, Class<T> valueType)` Convenience method for converting given JSON tree into instance of specified value type.
    `Version` | `version()` Method that will return version information stored in and read from jar that contains this class.
    `ObjectReader` | `withInjectableValues(InjectableValues injectableValues)` Method for constructing a new instance with configuration that uses passed `InjectableValues` to provide injectable values.
    `ObjectReader` | `withNodeFactory(JsonNodeFactory f)` Method for constructing a new reader instance with configuration that uses passed `JsonNodeFactory` for constructing `JsonNode` instances.
    `ObjectReader` | `withSchema(FormatSchema schema)` Method for constructing a new instance with configuration that passes specified `FormatSchema` to `JsonParser` that is constructed for parsing content.
    `ObjectReader` | `withType(Class<?> valueType)` Method for constructing a new reader instance that is configured to data bind into specified type.
    `ObjectReader` | `withType(JavaType valueType)` Method for constructing a new reader instance that is configured to data bind into specified type.
    `ObjectReader` | `withType(Type valueType)` Method for constructing a new reader instance that is configured to data bind into specified type.
    `ObjectReader` | `withType(TypeReference<?> valueTypeRef)` Method for constructing a new reader instance that is configured to data bind into specified type.
    `ObjectReader` | `withValueToUpdate(Object value)` Method for constructing a new instance with configuration that updates passed Object (as root value), instead of constructing a new value.
    `void` | `writeTree(JsonGenerator jgen, JsonNode rootNode)` NOTE: NOT implemented for `ObjectReader`.
    `void` | `writeValue(JsonGenerator jgen, Object value)` Method to serialize given Java Object, using generator provided.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### _config

          protected final DeserializationConfig _config

      General serialization configuration settings; while immutable, can use copy-constructor to create modified instances as necessary.

    - #### _unwrapRoot

          protected final boolean _unwrapRoot

      Flag that indicates whether root values are expected to be unwrapped or not
      Since:
        1.9

    - #### _rootDeserializers

          protected final ConcurrentHashMap<JavaType,JsonDeserializer<Object>> _rootDeserializers

      Root-level cached deserializers

    - #### _provider

          protected final DeserializerProvider _provider

    - #### _jsonFactory

          protected final JsonFactory _jsonFactory

      Factory used for constructing `JsonGenerator`s

    - #### _valueType

          protected final JavaType _valueType

      Declared type of value to instantiate during deserialization. Defines which deserializer to use; as well as base type of instance to construct if an updatable value is not configured to be used (subject to changes by embedded type information, for polymorphic types). If `_valueToUpdate` is non-null, only used for locating deserializer.

    - #### _valueToUpdate

          protected final Object _valueToUpdate

      Instance to update with data binding; if any. If null, a new instance is created, if non-null, properties of this value object will be updated instead. Note that value can be of almost any type, except not `ArrayType`; array types can not be modified because array size is immutable.

    - #### _schema

          protected final FormatSchema _schema

      When using data format that uses a schema, schema is passed to parser.
      Since:
        1.8

    - #### _injectableValues

          protected final InjectableValues _injectableValues

      Values that can be injected during deserialization, if any.
      Since:
        1.9

  - ### Constructor Detail

    - #### ObjectReader

          protected ObjectReader(ObjectMapper mapper,
                      DeserializationConfig config)

      Constructor used by `ObjectMapper` for initial instantiation
      Since:
        1.8

    - #### ObjectReader

          protected ObjectReader(ObjectMapper mapper,
                      DeserializationConfig config,
                      JavaType valueType,
                      Object valueToUpdate,
                      FormatSchema schema,
                      InjectableValues injectableValues)

    - #### ObjectReader

          protected ObjectReader(ObjectReader base,
                      DeserializationConfig config,
                      JavaType valueType,
                      Object valueToUpdate,
                      FormatSchema schema,
                      InjectableValues injectableValues)

      Copy constructor used for building variations.

  - ### Method Detail

    - #### version

          public Version version()

      Method that will return version information stored in and read from jar that contains this class.
      Specified by:
        `version` in interface `Versioned`
      Since:
        1.6

    - #### withType

          public ObjectReader withType(JavaType valueType)

      Method for constructing a new reader instance that is configured to data bind into specified type.

      Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.

    - #### withType

          public ObjectReader withType(Class<?> valueType)

      Method for constructing a new reader instance that is configured to data bind into specified type.

      Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.

    - #### withType

          public ObjectReader withType(Type valueType)

      Method for constructing a new reader instance that is configured to data bind into specified type.

      Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.

    - #### withType

          public ObjectReader withType(TypeReference<?> valueTypeRef)

      Method for constructing a new reader instance that is configured to data bind into specified type.

      Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.

      Since:
        1.8

    - #### withNodeFactory

          public ObjectReader withNodeFactory(JsonNodeFactory f)

      Method for constructing a new reader instance with configuration that uses passed `JsonNodeFactory` for constructing `JsonNode` instances.

      Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.

    - #### withValueToUpdate

          public ObjectReader withValueToUpdate(Object value)

      Method for constructing a new instance with configuration that updates passed Object (as root value), instead of constructing a new value.

      Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.

    - #### withSchema

          public ObjectReader withSchema(FormatSchema schema)

      Method for constructing a new instance with configuration that passes specified `FormatSchema` to `JsonParser` that is constructed for parsing content.

      Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.

      Since:
        1.8

    - #### withInjectableValues

          public ObjectReader withInjectableValues(InjectableValues injectableValues)

      Method for constructing a new instance with configuration that uses passed `InjectableValues` to provide injectable values.

      Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.

      Since:
        1.9

    - #### readValue

          public <T> T readValue(JsonParser jp)
                      throws IOException,
                             JsonProcessingException

      Method that binds content read using given parser, using configuration of this reader, including expected result type. Value return is either newly constructed, or root value that was specified with `withValueToUpdate(Object)`.
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValue

          public <T> T readValue(JsonParser jp,
                        Class<T> valueType)
                      throws IOException,
                             JsonProcessingException

      Convenience method that binds content read using given parser, using configuration of this reader, except that expected value type is specified with the call (instead of currently configured root type). Value return is either newly constructed, or root value that was specified with `withValueToUpdate(Object)`.
      Specified by:
        `readValue` in class `ObjectCodec`
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValue

          public <T> T readValue(JsonParser jp,
                        TypeReference<?> valueTypeRef)
                      throws IOException,
                             JsonProcessingException

      Convenience method that binds content read using given parser, using configuration of this reader, except that expected value type is specified with the call (instead of currently configured root type). Value return is either newly constructed, or root value that was specified with `withValueToUpdate(Object)`.
      Specified by:
        `readValue` in class `ObjectCodec`
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValue

          public <T> T readValue(JsonParser jp,
                        JavaType valueType)
                      throws IOException,
                             JsonProcessingException

      Convenience method that binds content read using given parser, using configuration of this reader, except that expected value type is specified with the call (instead of currently configured root type). Value return is either newly constructed, or root value that was specified with `withValueToUpdate(Object)`.
      Specified by:
        `readValue` in class `ObjectCodec`
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readTree

          public JsonNode readTree(JsonParser jp)
                            throws IOException,
                                   JsonProcessingException

      Convenience method that binds content read using given parser, using configuration of this reader, except that content is bound as JSON tree instead of configured root value type.

      Note: if an object was specified with `withValueToUpdate(java.lang.Object)`, it will be ignored.

      Specified by:
        `readTree` in class `ObjectCodec`
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValues

          public <T> Iterator<T> readValues(JsonParser jp,
                                   Class<T> valueType)
                                 throws IOException,
                                        JsonProcessingException

      Convenience method that is equivalent to:

             withType(valueType).readValues(jp);

      Specified by:
        `readValues` in class `ObjectCodec`
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValues

          public <T> Iterator<T> readValues(JsonParser jp,
                                   TypeReference<?> valueTypeRef)
                                 throws IOException,
                                        JsonProcessingException

      Convenience method that is equivalent to:

             withType(valueTypeRef).readValues(jp);

      Specified by:
        `readValues` in class `ObjectCodec`
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValues

          public <T> Iterator<T> readValues(JsonParser jp,
                                   JavaType valueType)
                                 throws IOException,
                                        JsonProcessingException

      Convenience method that is equivalent to:

             withType(valueType).readValues(jp);

      Specified by:
        `readValues` in class `ObjectCodec`
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValue

          public <T> T readValue(InputStream src)
                      throws IOException,
                             JsonProcessingException

      Method that binds content read from given input source, using configuration of this reader. Value return is either newly constructed, or root value that was specified with `withValueToUpdate(Object)`.
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValue

          public <T> T readValue(Reader src)
                      throws IOException,
                             JsonProcessingException

      Method that binds content read from given input source, using configuration of this reader. Value return is either newly constructed, or root value that was specified with `withValueToUpdate(Object)`.
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValue

          public <T> T readValue(String src)
                      throws IOException,
                             JsonProcessingException

      Method that binds content read from given JSON string, using configuration of this reader. Value return is either newly constructed, or root value that was specified with `withValueToUpdate(Object)`.
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValue

          public <T> T readValue(byte[] src)
                      throws IOException,
                             JsonProcessingException

      Method that binds content read from given byte array, using configuration of this reader. Value return is either newly constructed, or root value that was specified with `withValueToUpdate(Object)`.
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValue

          public <T> T readValue(byte[] src,
                        int offset,
                        int length)
                      throws IOException,
                             JsonProcessingException

      Method that binds content read from given byte array, using configuration of this reader. Value return is either newly constructed, or root value that was specified with `withValueToUpdate(Object)`.
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValue

          public <T> T readValue(File src)
                      throws IOException,
                             JsonProcessingException

      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValue

          public <T> T readValue(URL src)
                      throws IOException,
                             JsonProcessingException

      Method that binds content read from given input source, using configuration of this reader. Value return is either newly constructed, or root value that was specified with `withValueToUpdate(Object)`.
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValue

          public <T> T readValue(JsonNode src)
                      throws IOException,
                             JsonProcessingException

      Convenience method for converting results from given JSON tree into given value type. Basically short-cut for:

             objectReader.readValue(src.traverse())

      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readTree

          public JsonNode readTree(InputStream in)
                            throws IOException,
                                   JsonProcessingException

      Method that reads content from given input source, using configuration of this reader, and binds it as JSON Tree.

      Note that if an object was specified with a call to `withValueToUpdate(Object)` it will just be ignored; result is always a newly constructed `JsonNode` instance.

      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readTree

          public JsonNode readTree(Reader r)
                            throws IOException,
                                   JsonProcessingException

      Method that reads content from given input source, using configuration of this reader, and binds it as JSON Tree.

      Note that if an object was specified with a call to `withValueToUpdate(Object)` it will just be ignored; result is always a newly constructed `JsonNode` instance.

      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readTree

          public JsonNode readTree(String content)
                            throws IOException,
                                   JsonProcessingException

      Method that reads content from given JSON input String, using configuration of this reader, and binds it as JSON Tree.

      Note that if an object was specified with a call to `withValueToUpdate(Object)` it will just be ignored; result is always a newly constructed `JsonNode` instance.

      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValues

          public <T> MappingIterator<T> readValues(JsonParser jp)
                                        throws IOException,
                                               JsonProcessingException

      Method for reading sequence of Objects from parser stream.
      Throws:
        `IOException`
        `JsonProcessingException`
      Since:
        1.8

    - #### readValues

          public <T> MappingIterator<T> readValues(InputStream src)
                                        throws IOException,
                                               JsonProcessingException

      Method for reading sequence of Objects from parser stream.
      Throws:
        `IOException`
        `JsonProcessingException`
      Since:
        1.8

    - #### readValues

          public <T> MappingIterator<T> readValues(Reader src)
                                        throws IOException,
                                               JsonProcessingException

      Method for reading sequence of Objects from parser stream.
      Throws:
        `IOException`
        `JsonProcessingException`
      Since:
        1.8

    - #### readValues

          public <T> MappingIterator<T> readValues(String json)
                                        throws IOException,
                                               JsonProcessingException

      Method for reading sequence of Objects from parser stream.
      Throws:
        `IOException`
        `JsonProcessingException`
      Since:
        1.8

    - #### readValues

          public <T> MappingIterator<T> readValues(byte[] src,
                                          int offset,
                                          int length)
                                        throws IOException,
                                               JsonProcessingException

      Method for reading sequence of Objects from parser stream.
      Throws:
        `IOException`
        `JsonProcessingException`
      Since:
        1.8

    - #### readValues

          public final <T> MappingIterator<T> readValues(byte[] src)
                                              throws IOException,
                                                     JsonProcessingException

      Since 1.9.3
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### readValues

          public <T> MappingIterator<T> readValues(File src)
                                        throws IOException,
                                               JsonProcessingException

      Method for reading sequence of Objects from parser stream.
      Throws:
        `IOException`
        `JsonProcessingException`
      Since:
        1.8

    - #### readValues

          public <T> MappingIterator<T> readValues(URL src)
                                        throws IOException,
                                               JsonProcessingException

      Method for reading sequence of Objects from parser stream.
      Throws:
        `IOException`
        `JsonProcessingException`
      Since:
        1.8

    - #### _bind

          protected Object _bind(JsonParser jp)
                          throws IOException,
                                 JsonParseException,
                                 JsonMappingException

      Actual implementation of value reading+binding operation.
      Throws:
        `IOException`
        `JsonParseException`
        `JsonMappingException`

    - #### _bindAndClose

          protected Object _bindAndClose(JsonParser jp)
                                  throws IOException,
                                         JsonParseException,
                                         JsonMappingException

      Throws:
        `IOException`
        `JsonParseException`
        `JsonMappingException`

    - #### _bindAsTree

          protected JsonNode _bindAsTree(JsonParser jp)
                                  throws IOException,
                                         JsonParseException,
                                         JsonMappingException

      Throws:
        `IOException`
        `JsonParseException`
        `JsonMappingException`

    - #### _bindAndCloseAsTree

          protected JsonNode _bindAndCloseAsTree(JsonParser jp)
                                          throws IOException,
                                                 JsonParseException,
                                                 JsonMappingException

      Throws:
        `IOException`
        `JsonParseException`
        `JsonMappingException`

    - #### _initForReading

          protected static JsonToken _initForReading(JsonParser jp)
                                              throws IOException,
                                                     JsonParseException,
                                                     JsonMappingException

      Throws:
        `IOException`
        `JsonParseException`
        `JsonMappingException`

    - #### _findRootDeserializer

          protected JsonDeserializer<Object> _findRootDeserializer(DeserializationConfig cfg,
                                                       JavaType valueType)
                                                            throws JsonMappingException

      Method called to locate deserializer for the passed root-level value.
      Throws:
        `JsonMappingException`

    - #### _createDeserializationContext

          protected DeserializationContext _createDeserializationContext(JsonParser jp,
                                                             DeserializationConfig cfg)

    - #### _unwrapAndDeserialize

          protected Object _unwrapAndDeserialize(JsonParser jp,
                                     DeserializationContext ctxt,
                                     JavaType rootType,
                                     JsonDeserializer<Object> deser)
                                          throws IOException,
                                                 JsonParseException,
                                                 JsonMappingException

      Throws:
        `IOException`
        `JsonParseException`
        `JsonMappingException`

    - #### createArrayNode

          public JsonNode createArrayNode()

      Description copied from class: `ObjectCodec`
      Method for construct root level Array nodes for Tree Model instances.
      Specified by:
        `createArrayNode` in class `ObjectCodec`

    - #### createObjectNode

          public JsonNode createObjectNode()

      Description copied from class: `ObjectCodec`
      Method for construct root level Object nodes for Tree Model instances.
      Specified by:
        `createObjectNode` in class `ObjectCodec`

    - #### treeAsTokens

          public JsonParser treeAsTokens(JsonNode n)

      Description copied from class: `ObjectCodec`
      Method for constructing a `JsonParser` for reading contents of a JSON tree, as if it was external serialized JSON content.
      Specified by:
        `treeAsTokens` in class `ObjectCodec`

    - #### treeToValue

          public <T> T treeToValue(JsonNode n,
                          Class<T> valueType)
                        throws IOException,
                               JsonProcessingException

      Description copied from class: `ObjectCodec`
      Convenience method for converting given JSON tree into instance of specified value type. This is equivalent to first constructing a `JsonParser` to iterate over contents of the tree, and using that parser for data binding.
      Specified by:
        `treeToValue` in class `ObjectCodec`
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### writeTree

          public void writeTree(JsonGenerator jgen,
                       JsonNode rootNode)
                         throws IOException,
                                JsonProcessingException

      NOTE: NOT implemented for `ObjectReader`.
      Specified by:
        `writeTree` in class `ObjectCodec`
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### writeValue

          public void writeValue(JsonGenerator jgen,
                        Object value)
                          throws IOException,
                                 JsonProcessingException

      Description copied from class: `ObjectCodec`
      Method to serialize given Java Object, using generator provided.
      Specified by:
        `writeValue` in class `ObjectCodec`
      Throws:
        `IOException`
        `JsonProcessingException`