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

org.codehaus.jackson.map.deser

## Interface ValueInstantiators

- All Known Implementing Classes:
    SimpleValueInstantiators, ValueInstantiators.Base

      public interface ValueInstantiators

  Interface for providers of `ValueInstantiator` instances. Implemented when an object wants to provide custom value instantiators, usually to support custom value types with alternate constructors, or which need specified post-processing after construction but before binding data.
  Since:
    1.9

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `ValueInstantiators.Base` Basic "NOP" implementation that can be used as the base class for custom implementations.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ValueInstantiator` | `findValueInstantiator(DeserializationConfig config, BeanDescription beanDesc, ValueInstantiator defaultInstantiator)` Method called to find the `ValueInstantiator` to use for creating instances of specified type during deserialization.

- - ### Method Detail

    - #### findValueInstantiator

          ValueInstantiator findValueInstantiator(DeserializationConfig config,
                                                BeanDescription beanDesc,
                                                ValueInstantiator defaultInstantiator)

      Method called to find the `ValueInstantiator` to use for creating instances of specified type during deserialization. Note that a default value instantiator is always created first and passed; if an implementation does not want to modify or replace it, it has to return passed instance as is (returning null is an error)
      Parameters:
        `config` - Deserialization configuration in use
        `beanDesc` - Additional information about POJO type to be instantiated: description will always be of type `BasicBeanDescription` (that is, safe to cast to this more specific type)
        `defaultInstantiator` - Instantiator that will be used if no changes are made; passed to allow custom instances to use annotation-provided information (note, however, that earlier `ValueInstantiators` may have changed it to a custom instantiator already)
      Returns:
        Instantiator to use; either `defaultInstantiator` that was passed, or a custom variant; can not be null.