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
static class ValueInstantiators.Base
          Basic "NOP" implementation that can be used as the base class for custom implementations.
 
Method Summary
 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.