com.fasterxml.jackson.databind
Interface Module.SetupContext

Enclosing class:
Module

public static interface Module.SetupContext

Interface Jackson exposes to modules for purpose of registering extended functionality. Usually implemented by ObjectMapper, but modules should NOT rely on this -- if they do require access to mapper instance, they need to call getOwner() method.


Method Summary
 void addAbstractTypeResolver(AbstractTypeResolver resolver)
          Method that module can use to register additional AbstractTypeResolver instance, to handle resolution of abstract to concrete types (either by defaulting, or by materializing).
 void addBeanDeserializerModifier(BeanDeserializerModifier mod)
          Method that module can use to register additional modifier objects to customize configuration and construction of bean deserializers.
 void addBeanSerializerModifier(BeanSerializerModifier mod)
          Method that module can use to register additional modifier objects to customize configuration and construction of bean serializers.
 void addDeserializationProblemHandler(DeserializationProblemHandler handler)
          Add a deserialization problem handler
 void addDeserializers(Deserializers d)
          Method that module can use to register additional deserializers to use for handling types.
 void addKeyDeserializers(KeyDeserializers s)
          Method that module can use to register additional deserializers to use for handling Map key values (which are separate from value deserializers because they are always serialized from String values)
 void addKeySerializers(Serializers s)
          Method that module can use to register additional serializers to use for handling Map key values (which are separate from value serializers because they must write JsonToken.FIELD_NAME instead of String value).
 void addSerializers(Serializers s)
          Method that module can use to register additional serializers to use for handling types.
 void addTypeModifier(TypeModifier modifier)
          Method that module can use to register additional TypeModifier instance, which can augment JavaType instances constructed by TypeFactory.
 void addValueInstantiators(ValueInstantiators instantiators)
          Method that module can use to register additional ValueInstantiators, by adding ValueInstantiators object that gets called when instantatiator is needed by a deserializer.
 void appendAnnotationIntrospector(AnnotationIntrospector ai)
          Method for registering specified AnnotationIntrospector as the lowest priority introspector, chained with existing introspector(s) and called as fallback for cases not otherwise handled.
 Version getMapperVersion()
          Method that returns version information about ObjectMapper that implements this context.
<C extends ObjectCodec>
C
getOwner()
          Fallback access method that allows modules to refer to the ObjectMapper that provided this context.
 TypeFactory getTypeFactory()
          Accessor for finding TypeFactory that is currently configured by the context.
 void insertAnnotationIntrospector(AnnotationIntrospector ai)
          Method for registering specified AnnotationIntrospector as the highest priority introspector (will be chained with existing introspector(s) which will be used as fallbacks for cases this introspector does not handle)
 boolean isEnabled(DeserializationFeature f)
           
 boolean isEnabled(JsonFactory.Feature f)
           
 boolean isEnabled(JsonGenerator.Feature f)
           
 boolean isEnabled(JsonParser.Feature f)
           
 boolean isEnabled(MapperFeature f)
           
 boolean isEnabled(SerializationFeature f)
           
 void registerSubtypes(Class<?>... subtypes)
          Method for registering specified classes as subtypes (of supertype(s) they have)
 void registerSubtypes(NamedType... subtypes)
          Method for registering specified classes as subtypes (of supertype(s) they have), using specified type names.
 void setMixInAnnotations(Class<?> target, Class<?> mixinSource)
          Method used for defining mix-in annotations to use for augmenting specified class or interface.
 

Method Detail

getMapperVersion

Version getMapperVersion()
Method that returns version information about ObjectMapper that implements this context. Modules can use this to choose different settings or initialization order; or even decide to fail set up completely if version is compatible with module.


getOwner

<C extends ObjectCodec> C getOwner()
Fallback access method that allows modules to refer to the ObjectMapper that provided this context. It should NOT be needed by most modules; and ideally should not be used -- however, there may be cases where this may be necessary due to various design constraints.

NOTE: use of this method is discouraged, as it allows access to things Modules typically should not modify. It is included, however, to allow access to new features in cases where Module API has not yet been extended, or there are oversights.

Return value is chosen to not leak dependency to ObjectMapper; however, instance will always be of that type. This is why return value is declared generic, to allow caller to specify context to often avoid casting.

Since:
2.0

getTypeFactory

TypeFactory getTypeFactory()
Accessor for finding TypeFactory that is currently configured by the context.

NOTE: since it is possible that other modules might change or replace TypeFactory, use of this method adds order-dependency for registrations.

Since:
2.0

isEnabled

boolean isEnabled(MapperFeature f)

isEnabled

boolean isEnabled(DeserializationFeature f)

isEnabled

boolean isEnabled(SerializationFeature f)

isEnabled

boolean isEnabled(JsonFactory.Feature f)

isEnabled

boolean isEnabled(JsonParser.Feature f)

isEnabled

boolean isEnabled(JsonGenerator.Feature f)

addDeserializers

void addDeserializers(Deserializers d)
Method that module can use to register additional deserializers to use for handling types.

Parameters:
d - Object that can be called to find deserializer for types supported by module (null returned for non-supported types)

addKeyDeserializers

void addKeyDeserializers(KeyDeserializers s)
Method that module can use to register additional deserializers to use for handling Map key values (which are separate from value deserializers because they are always serialized from String values)


addSerializers

void addSerializers(Serializers s)
Method that module can use to register additional serializers to use for handling types.

Parameters:
s - Object that can be called to find serializer for types supported by module (null returned for non-supported types)

addKeySerializers

void addKeySerializers(Serializers s)
Method that module can use to register additional serializers to use for handling Map key values (which are separate from value serializers because they must write JsonToken.FIELD_NAME instead of String value).


addBeanDeserializerModifier

void addBeanDeserializerModifier(BeanDeserializerModifier mod)
Method that module can use to register additional modifier objects to customize configuration and construction of bean deserializers.

Parameters:
mod - Modifier to register

addBeanSerializerModifier

void addBeanSerializerModifier(BeanSerializerModifier mod)
Method that module can use to register additional modifier objects to customize configuration and construction of bean serializers.

Parameters:
mod - Modifier to register

addAbstractTypeResolver

void addAbstractTypeResolver(AbstractTypeResolver resolver)
Method that module can use to register additional AbstractTypeResolver instance, to handle resolution of abstract to concrete types (either by defaulting, or by materializing).

Parameters:
resolver - Resolver to add.

addTypeModifier

void addTypeModifier(TypeModifier modifier)
Method that module can use to register additional TypeModifier instance, which can augment JavaType instances constructed by TypeFactory.

Parameters:
modifier - to add

addValueInstantiators

void addValueInstantiators(ValueInstantiators instantiators)
Method that module can use to register additional ValueInstantiators, by adding ValueInstantiators object that gets called when instantatiator is needed by a deserializer.

Parameters:
instantiators - Object that can provide ValueInstantiators for constructing POJO values during deserialization

insertAnnotationIntrospector

void insertAnnotationIntrospector(AnnotationIntrospector ai)
Method for registering specified AnnotationIntrospector as the highest priority introspector (will be chained with existing introspector(s) which will be used as fallbacks for cases this introspector does not handle)

Parameters:
ai - Annotation introspector to register.

appendAnnotationIntrospector

void appendAnnotationIntrospector(AnnotationIntrospector ai)
Method for registering specified AnnotationIntrospector as the lowest priority introspector, chained with existing introspector(s) and called as fallback for cases not otherwise handled.

Parameters:
ai - Annotation introspector to register.

registerSubtypes

void registerSubtypes(Class<?>... subtypes)
Method for registering specified classes as subtypes (of supertype(s) they have)


registerSubtypes

void registerSubtypes(NamedType... subtypes)
Method for registering specified classes as subtypes (of supertype(s) they have), using specified type names.


setMixInAnnotations

void setMixInAnnotations(Class<?> target,
                         Class<?> mixinSource)
Method used for defining mix-in annotations to use for augmenting specified class or interface. All annotations from mixinSource are taken to override annotations that target (or its supertypes) has.

Note: mix-ins are registered both for serialization and deserialization (which can be different internally).

Note: currently only one set of mix-in annotations can be defined for a single class; so if multiple modules register mix-ins, highest priority one (last one registered) will have priority over other modules.

Parameters:
target - Class (or interface) whose annotations to effectively override
mixinSource - Class (or interface) whose annotations are to be "added" to target's annotations, overriding as necessary

addDeserializationProblemHandler

void addDeserializationProblemHandler(DeserializationProblemHandler handler)
Add a deserialization problem handler

Parameters:
handler - The deserialization problem handler


Copyright © 2012 FasterXML. All Rights Reserved.