org.codehaus.jackson.map
Class HandlerInstantiator

java.lang.Object
  extended by org.codehaus.jackson.map.HandlerInstantiator

public abstract class HandlerInstantiator
extends Object

Helper class used for handling details of creating handler instances (things like JsonSerializers, JsonDeserializers, various type handlers) of specific types. Actual handler type has been resolved at this point, so instantiator is strictly responsible for providing a configured instance by constructing and configuring a new instance, or possibly by recycling a shared instance. One use case is that of allowing dependency injection, which would otherwise be difficult to do.

Custom instances are allowed to return null to indicate that caller should use the default instantiation handling (which just means calling no-argument constructor via reflection).

Care has to be taken to ensure that if instance returned is shared, it will be thread-safe; caller will not synchronize access to returned instances.

Since:
1.8

Constructor Summary
HandlerInstantiator()
           
 
Method Summary
abstract  JsonDeserializer<?> deserializerInstance(DeserializationConfig config, Annotated annotated, Class<? extends JsonDeserializer<?>> deserClass)
          Method called to get an instance of deserializer of specified type.
abstract  KeyDeserializer keyDeserializerInstance(DeserializationConfig config, Annotated annotated, Class<? extends KeyDeserializer> keyDeserClass)
          Method called to get an instance of key deserializer of specified type.
abstract  JsonSerializer<?> serializerInstance(SerializationConfig config, Annotated annotated, Class<? extends JsonSerializer<?>> serClass)
          Method called to get an instance of serializer of specified type.
abstract  TypeIdResolver typeIdResolverInstance(MapperConfig<?> config, Annotated annotated, Class<? extends TypeIdResolver> resolverClass)
          Method called to get an instance of TypeIdResolver of specified type.
abstract  TypeResolverBuilder<?> typeResolverBuilderInstance(MapperConfig<?> config, Annotated annotated, Class<? extends TypeResolverBuilder<?>> builderClass)
          Method called to get an instance of TypeResolverBuilder of specified type.
 ValueInstantiator valueInstantiatorInstance(MapperConfig<?> config, Annotated annotated, Class<? extends ValueInstantiator> resolverClass)
          Method called to construct an instance of ValueInstantiator of specified type.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HandlerInstantiator

public HandlerInstantiator()
Method Detail

deserializerInstance

public abstract JsonDeserializer<?> deserializerInstance(DeserializationConfig config,
                                                         Annotated annotated,
                                                         Class<? extends JsonDeserializer<?>> deserClass)
Method called to get an instance of deserializer of specified type.

Parameters:
config - Deserialization configuration in effect
annotated - Element (Class, Method, Field, constructor parameter) that had annotation defining class of deserializer to construct (to allow implementation use information from other annotations)
deserClass - Class of deserializer instance to return
Returns:
Deserializer instance to use

keyDeserializerInstance

public abstract KeyDeserializer keyDeserializerInstance(DeserializationConfig config,
                                                        Annotated annotated,
                                                        Class<? extends KeyDeserializer> keyDeserClass)
Method called to get an instance of key deserializer of specified type.

Parameters:
config - Deserialization configuration in effect
annotated - Element (Class, Method, Field, constructor parameter) that had annotation defining class of key deserializer to construct (to allow implementation use information from other annotations)
keyDeserClass - Class of key deserializer instance to return
Returns:
Key deserializer instance to use

serializerInstance

public abstract JsonSerializer<?> serializerInstance(SerializationConfig config,
                                                     Annotated annotated,
                                                     Class<? extends JsonSerializer<?>> serClass)
Method called to get an instance of serializer of specified type.

Parameters:
config - Serialization configuration in effect
annotated - Element (Class, Method, Field) that had annotation defining class of serializer to construct (to allow implementation use information from other annotations)
serClass - Class of serializer instance to return
Returns:
Serializer instance to use

typeResolverBuilderInstance

public abstract TypeResolverBuilder<?> typeResolverBuilderInstance(MapperConfig<?> config,
                                                                   Annotated annotated,
                                                                   Class<? extends TypeResolverBuilder<?>> builderClass)
Method called to get an instance of TypeResolverBuilder of specified type.

Parameters:
config - Mapper configuration in effect (either SerializationConfig or DeserializationConfig, depending on when instance is being constructed)
annotated - annotated Element (Class, Method, Field) that had annotation defining class of builder to construct (to allow implementation use information from other annotations)
builderClass - Class of builder instance to return
Returns:
TypeResolverBuilder instance to use

typeIdResolverInstance

public abstract TypeIdResolver typeIdResolverInstance(MapperConfig<?> config,
                                                      Annotated annotated,
                                                      Class<? extends TypeIdResolver> resolverClass)
Method called to get an instance of TypeIdResolver of specified type.

Parameters:
config - Mapper configuration in effect (either SerializationConfig or DeserializationConfig, depending on when instance is being constructed)
annotated - annotated Element (Class, Method, Field) that had annotation defining class of resolver to construct (to allow implementation use information from other annotations)
resolverClass - Class of resolver instance to return
Returns:
TypeResolverBuilder instance to use

valueInstantiatorInstance

public ValueInstantiator valueInstantiatorInstance(MapperConfig<?> config,
                                                   Annotated annotated,
                                                   Class<? extends ValueInstantiator> resolverClass)
Method called to construct an instance of ValueInstantiator of specified type.

Since:
1.9