Package com.fasterxml.jackson.databind
Class DatabindContext
- java.lang.Object
-
- com.fasterxml.jackson.databind.DatabindContext
-
- Direct Known Subclasses:
DeserializationContext,SerializerProvider
public abstract class DatabindContext extends Object
Shared base class forDeserializationContextandSerializerProvider, context objects passed through data-binding process. Designed so that some of implementations can rely on shared aspects like access to secondary contextual objects like type factories or handler instantiators.- Since:
- 2.2
-
-
Constructor Summary
Constructors Constructor Description DatabindContext()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected String_colonConcat(String msgBase, String extra)protected String_desc(String desc)protected String_format(String msg, Object... msgArgs)protected String_quotedString(String desc)protected <T> T_throwNotASubtype(JavaType baseType, String subType)protected <T> T_throwSubtypeClassNotAllowed(JavaType baseType, String subType, PolymorphicTypeValidator ptv)protected <T> T_throwSubtypeNameNotAllowed(JavaType baseType, String subType, PolymorphicTypeValidator ptv)protected String_truncate(String desc)abstract booleancanOverrideAccessModifiers()Convenience method for accessing serialization view in use (if any); equivalent to:JavaTypeconstructSpecializedType(JavaType baseType, Class<?> subclass)Convenience method for constructing subtypes, retaining generic type parameter (if any)JavaTypeconstructType(Type type)Converter<Object,Object>converterInstance(Annotated annotated, Object converterDef)Helper method to use to construct aConverter, given a definition that may be either actual converter instance, or Class for instantiating one.abstract Class<?>getActiveView()Accessor for locating currently active view, if any; returns null if no view has been set.abstract AnnotationIntrospectorgetAnnotationIntrospector()Convenience method for accessing serialization view in use (if any); equivalent to:abstract ObjectgetAttribute(Object key)Method for accessing attributes available in this context.abstract MapperConfig<?>getConfig()Accessor to currently active configuration (both per-request configs and per-mapper config).abstract com.fasterxml.jackson.annotation.JsonFormat.ValuegetDefaultPropertyFormat(Class<?> baseType)abstract LocalegetLocale()abstract TimeZonegetTimeZone()abstract TypeFactorygetTypeFactory()protected abstract JsonMappingExceptioninvalidTypeIdException(JavaType baseType, String typeId, String extraDesc)Helper method for constructing exception to indicate that given type id could not be resolved to a valid subtype of specified base type.abstract booleanisEnabled(MapperFeature feature)Convenience method for checking whether specified serialization feature is enabled or not.com.fasterxml.jackson.annotation.ObjectIdGenerator<?>objectIdGeneratorInstance(Annotated annotated, ObjectIdInfo objectIdInfo)com.fasterxml.jackson.annotation.ObjectIdResolverobjectIdResolverInstance(Annotated annotated, ObjectIdInfo objectIdInfo)abstract <T> TreportBadDefinition(JavaType type, String msg)Helper method called to indicate a generic problem that stems from type definition(s), not input data, or input/output state; typically this means throwing aInvalidDefinitionException.<T> TreportBadDefinition(Class<?> type, String msg)JavaTyperesolveAndValidateSubType(JavaType baseType, String subClass, PolymorphicTypeValidator ptv)Lookup method similar toresolveSubType(com.fasterxml.jackson.databind.JavaType, java.lang.String)but one that also validates that resulting subtype is valid according to givenPolymorphicTypeValidator.JavaTyperesolveSubType(JavaType baseType, String subClassName)Lookup method called when code needs to resolve class name from input; usually simple lookup.abstract DatabindContextsetAttribute(Object key, Object value)Method for setting per-call value of given attribute.
-
-
-
Method Detail
-
getConfig
public abstract MapperConfig<?> getConfig()
Accessor to currently active configuration (both per-request configs and per-mapper config).
-
getAnnotationIntrospector
public abstract AnnotationIntrospector getAnnotationIntrospector()
Convenience method for accessing serialization view in use (if any); equivalent to:getConfig().getAnnotationIntrospector();
-
isEnabled
public abstract boolean isEnabled(MapperFeature feature)
Convenience method for checking whether specified serialization feature is enabled or not. Shortcut for:getConfig().isEnabled(feature);
-
canOverrideAccessModifiers
public abstract boolean canOverrideAccessModifiers()
Convenience method for accessing serialization view in use (if any); equivalent to:getConfig().canOverrideAccessModifiers();
-
getActiveView
public abstract Class<?> getActiveView()
Accessor for locating currently active view, if any; returns null if no view has been set.
-
getLocale
public abstract Locale getLocale()
- Since:
- 2.6
-
getTimeZone
public abstract TimeZone getTimeZone()
- Since:
- 2.6
-
getDefaultPropertyFormat
public abstract com.fasterxml.jackson.annotation.JsonFormat.Value getDefaultPropertyFormat(Class<?> baseType)
- Since:
- 2.7
-
getAttribute
public abstract Object getAttribute(Object key)
Method for accessing attributes available in this context. Per-call attributes have highest precedence; attributes set viaObjectReaderorObjectWriterhave lower precedence.- Parameters:
key- Key of the attribute to get- Returns:
- Value of the attribute, if any; null otherwise
- Since:
- 2.3
-
setAttribute
public abstract DatabindContext setAttribute(Object key, Object value)
Method for setting per-call value of given attribute. This will override any previously defined value for the attribute within this context.- Parameters:
key- Key of the attribute to setvalue- Value to set attribute to- Returns:
- This context object, to allow chaining
- Since:
- 2.3
-
constructSpecializedType
public JavaType constructSpecializedType(JavaType baseType, Class<?> subclass)
Convenience method for constructing subtypes, retaining generic type parameter (if any)
-
resolveSubType
public JavaType resolveSubType(JavaType baseType, String subClassName) throws JsonMappingException
Lookup method called when code needs to resolve class name from input; usually simple lookup. Note that unlikeresolveAndValidateSubType(com.fasterxml.jackson.databind.JavaType, java.lang.String, com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator)this method DOES NOT validate subtype against configuredPolymorphicTypeValidator: usually because such check has already been made.- Throws:
JsonMappingException- Since:
- 2.9
-
resolveAndValidateSubType
public JavaType resolveAndValidateSubType(JavaType baseType, String subClass, PolymorphicTypeValidator ptv) throws JsonMappingException
Lookup method similar toresolveSubType(com.fasterxml.jackson.databind.JavaType, java.lang.String)but one that also validates that resulting subtype is valid according to givenPolymorphicTypeValidator.- Throws:
JsonMappingException- Since:
- 2.10
-
_throwNotASubtype
protected <T> T _throwNotASubtype(JavaType baseType, String subType) throws JsonMappingException
- Throws:
JsonMappingException
-
_throwSubtypeNameNotAllowed
protected <T> T _throwSubtypeNameNotAllowed(JavaType baseType, String subType, PolymorphicTypeValidator ptv) throws JsonMappingException
- Throws:
JsonMappingException
-
_throwSubtypeClassNotAllowed
protected <T> T _throwSubtypeClassNotAllowed(JavaType baseType, String subType, PolymorphicTypeValidator ptv) throws JsonMappingException
- Throws:
JsonMappingException
-
invalidTypeIdException
protected abstract JsonMappingException invalidTypeIdException(JavaType baseType, String typeId, String extraDesc)
Helper method for constructing exception to indicate that given type id could not be resolved to a valid subtype of specified base type. Most commonly called during polymorphic deserialization.Note that most of the time this method should NOT be called directly: instead, method
handleUnknownTypeId()should be called which will call this method if necessary.- Since:
- 2.9
-
getTypeFactory
public abstract TypeFactory getTypeFactory()
-
objectIdGeneratorInstance
public com.fasterxml.jackson.annotation.ObjectIdGenerator<?> objectIdGeneratorInstance(Annotated annotated, ObjectIdInfo objectIdInfo) throws JsonMappingException
- Throws:
JsonMappingException
-
objectIdResolverInstance
public com.fasterxml.jackson.annotation.ObjectIdResolver objectIdResolverInstance(Annotated annotated, ObjectIdInfo objectIdInfo)
-
converterInstance
public Converter<Object,Object> converterInstance(Annotated annotated, Object converterDef) throws JsonMappingException
Helper method to use to construct aConverter, given a definition that may be either actual converter instance, or Class for instantiating one.- Throws:
JsonMappingException- Since:
- 2.2
-
reportBadDefinition
public abstract <T> T reportBadDefinition(JavaType type, String msg) throws JsonMappingException
Helper method called to indicate a generic problem that stems from type definition(s), not input data, or input/output state; typically this means throwing aInvalidDefinitionException.- Throws:
JsonMappingException- Since:
- 2.9
-
reportBadDefinition
public <T> T reportBadDefinition(Class<?> type, String msg) throws JsonMappingException
- Throws:
JsonMappingException- Since:
- 2.9
-
-