Class DeserializationContext
- java.lang.Object
-
- com.fasterxml.jackson.databind.DatabindContext
-
- com.fasterxml.jackson.databind.DeserializationContext
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
DefaultDeserializationContext
public abstract class DeserializationContext extends DatabindContext implements java.io.Serializable
Context for the process of deserialization a single root-level value. Used to allow passing in configuration settings and reusable temporary objects (scrap arrays, containers).Instance life-cycle is such that a partially configured "blueprint" object is registered with
ObjectMapper
(andObjectReader
, and when actual instance is needed for deserialization, a fully configured instance will be created using a method in extended internal API of sub-class (DefaultDeserializationContext.createInstance(com.fasterxml.jackson.databind.DeserializationConfig, com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.InjectableValues)
). Each instance is guaranteed to only be used from single-threaded context; instances may be reused if (and only if) no configuration has changed.Defined as abstract class so that implementations must define methods for reconfiguring blueprints and creating instances.
- See Also:
- Serialized Form
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description TokenBuffer
bufferAsCopyOfValue(JsonParser p)
Convenience method, equivalent to:TokenBuffer
bufferForInputBuffering()
Convenience method that is equivalent to:TokenBuffer
bufferForInputBuffering(JsonParser p)
Factory method used for creatingTokenBuffer
to temporarily contain copy of content read from specified parser; usually for purpose of reading contents later on (possibly augmeneted with injected additional content)boolean
canOverrideAccessModifiers()
Convenience method for accessing serialization view in use (if any); equivalent to:abstract void
checkUnresolvedObjectId()
Method called to ensure that every object id encounter during processing are resolved.java.util.Calendar
constructCalendar(java.util.Date d)
Convenience method for constructing Calendar instance set to specified time, to be modified and used by caller.JavaType
constructSpecializedType(JavaType baseType, java.lang.Class<?> subclass)
Convenience method for constructing subtypes, retaining generic type parameter (if any).JavaType
constructType(java.lang.Class<?> cls)
Convenience method, functionally equivalent to:abstract JsonDeserializer<java.lang.Object>
deserializerInstance(Annotated annotated, java.lang.Object deserDef)
JsonMappingException
endOfInputException(java.lang.Class<?> instClass)
Deprecated.Since 2.8; currently no way to catch EOF at databind leveljava.lang.String
extractScalarFromObject(JsonParser p, JsonDeserializer<?> deser, java.lang.Class<?> scalarType)
Method to call in case incoming shape is Object Value (and parser thereby points toJsonToken.START_OBJECT
token), but a Scalar value (potentially coercible from String value) is expected.java.lang.Class<?>
findClass(java.lang.String className)
Helper method that is to be used when resolving basic class name into Class instance, the reason being that it may be necessary to work around various ClassLoader limitations, as well as to handle primitive type signatures.CoercionAction
findCoercionAction(LogicalType targetType, java.lang.Class<?> targetClass, CoercionInputShape inputShape)
General-purpose accessor for finding what to do when specified coercion from shape that is now always allowed to be coerced from is requested.CoercionAction
findCoercionFromBlankString(LogicalType targetType, java.lang.Class<?> targetClass, CoercionAction actionIfBlankNotAllowed)
More specialized accessor called in case of input being a blank String (one consisting of only white space characters with length of at least one).JsonDeserializer<java.lang.Object>
findContextualValueDeserializer(JavaType type, BeanProperty prop)
Method for finding a value deserializer, and creating a contextual version if necessary, for value reached via specified property.java.lang.Object
findInjectableValue(java.lang.Object valueId, BeanProperty forProperty, java.lang.Object beanInstance)
KeyDeserializer
findKeyDeserializer(JavaType keyType, BeanProperty prop)
Convenience method, functionally same as:JsonDeserializer<java.lang.Object>
findNonContextualValueDeserializer(JavaType type)
Variant that will try to locate deserializer for current type, but without performing any contextualization (unlikefindContextualValueDeserializer(com.fasterxml.jackson.databind.JavaType, com.fasterxml.jackson.databind.BeanProperty)
) or checking for need to create aTypeDeserializer
(unlikefindRootValueDeserializer(JavaType)
.abstract ReadableObjectId
findObjectId(java.lang.Object id, ObjectIdGenerator<?> generator, ObjectIdResolver resolver)
Method called to find and return entry corresponding to given Object Id: will add an entry if necessary, and never returns nullJsonDeserializer<java.lang.Object>
findRootValueDeserializer(JavaType type)
Method for finding a deserializer for root-level value.java.lang.Class<?>
getActiveView()
Accessor for locating currently active view, if any; returns null if no view has been set.AnnotationIntrospector
getAnnotationIntrospector()
Convenience method for accessing serialization view in use (if any); equivalent to:ArrayBuilders
getArrayBuilders()
Method for accessing object useful for building arrays of primitive types (such as int[]).java.lang.Object
getAttribute(java.lang.Object key)
Method for accessing attributes available in this context.Base64Variant
getBase64Variant()
Convenience method for accessing the default Base64 encoding used for decoding base64 encoded binary content.DeserializationConfig
getConfig()
Accessor to currently active configuration (both per-request configs and per-mapper config).JavaType
getContextualType()
Accessor toJavaType
of currently contextualizedContextualDeserializer
, if any.JsonFormat.Value
getDefaultPropertyFormat(java.lang.Class<?> baseType)
int
getDeserializationFeatures()
Bulk access method for getting the bit mask of allDeserializationFeature
s that are enabled.DeserializerFactory
getFactory()
Method for getting currentDeserializerFactory
.java.util.Locale
getLocale()
Method for accessing default Locale to use: convenience method forJsonNodeFactory
getNodeFactory()
Convenience method, functionally equivalent to:JsonParser
getParser()
Method for accessing the currently active parser.java.util.TimeZone
getTimeZone()
Method for accessing default TimeZone to use: convenience method forTypeFactory
getTypeFactory()
void
handleBadMerge(JsonDeserializer<?> deser)
Method that deserializer may call if it is called to do an update ("merge") but deserializer operates on a non-mergeable type.java.lang.Object
handleInstantiationProblem(java.lang.Class<?> instClass, java.lang.Object argument, java.lang.Throwable t)
Method that deserializers should call if they fail to instantiate value due to an exception that was thrown by constructor (or other mechanism used to create instances).java.lang.Object
handleMissingInstantiator(java.lang.Class<?> instClass, ValueInstantiator valueInst, JsonParser p, java.lang.String msg, java.lang.Object... msgArgs)
Method that deserializers should call if they fail to instantiate value due to lack of viable instantiator (usually creator, that is, constructor or static factory method).JavaType
handleMissingTypeId(JavaType baseType, TypeIdResolver idResolver, java.lang.String extraDesc)
JsonDeserializer<?>
handlePrimaryContextualization(JsonDeserializer<?> deser, BeanProperty prop, JavaType type)
Method called for primary property deserializers (ones directly created to deserialize values of a POJO property), to handle details of resolvingContextualDeserializer
with given property context.JsonDeserializer<?>
handleSecondaryContextualization(JsonDeserializer<?> deser, BeanProperty prop, JavaType type)
Method called for secondary property deserializers (ones NOT directly created to deal with an annotatable POJO property, but instead created as a component -- such as value deserializers for structured types, or deserializers for root values) to handle details of resolvingContextualDeserializer
with given property context.java.lang.Object
handleUnexpectedToken(JavaType targetType, JsonParser p)
Method that deserializers should call if the first token of the value to deserialize is of unexpected type (that is, type of token that deserializer cannot handle).java.lang.Object
handleUnexpectedToken(JavaType targetType, JsonToken t, JsonParser p, java.lang.String msg, java.lang.Object... msgArgs)
Method that deserializers should call if the first token of the value to deserialize is of unexpected type (that is, type of token that deserializer cannot handle).java.lang.Object
handleUnexpectedToken(java.lang.Class<?> instClass, JsonParser p)
Method that deserializers should call if the first token of the value to deserialize is of unexpected type (that is, type of token that deserializer cannot handle).java.lang.Object
handleUnexpectedToken(java.lang.Class<?> instClass, JsonToken t, JsonParser p, java.lang.String msg, java.lang.Object... msgArgs)
Method that deserializers should call if the first token of the value to deserialize is of unexpected type (that is, type of token that deserializer cannot handle).boolean
handleUnknownProperty(JsonParser p, JsonDeserializer<?> deser, java.lang.Object instanceOrClass, java.lang.String propName)
Method that deserializers should call if they encounter an unrecognized property (and once that is not explicitly designed as ignorable), to inform possibly configuredDeserializationProblemHandler
s and let it handle the problem.JavaType
handleUnknownTypeId(JavaType baseType, java.lang.String id, TypeIdResolver idResolver, java.lang.String extraDesc)
Method that deserializers should call if they encounter a type id (for polymorphic deserialization) that cannot be resolved to an actual type; usually since there is no mapping defined.java.lang.Object
handleWeirdKey(java.lang.Class<?> keyClass, java.lang.String keyValue, java.lang.String msg, java.lang.Object... msgArgs)
Method that deserializers should call if they encounter a String value that cannot be converted to expected key of aMap
valued property.java.lang.Object
handleWeirdNativeValue(JavaType targetType, java.lang.Object badValue, JsonParser p)
java.lang.Object
handleWeirdNumberValue(java.lang.Class<?> targetClass, java.lang.Number value, java.lang.String msg, java.lang.Object... msgArgs)
Method that deserializers should call if they encounter a numeric value that cannot be converted to target property type, in cases where some numeric values could be acceptable (either with different settings, or different numeric value).java.lang.Object
handleWeirdStringValue(java.lang.Class<?> targetClass, java.lang.String value, java.lang.String msg, java.lang.Object... msgArgs)
Method that deserializers should call if they encounter a String value that cannot be converted to target property type, in cases where some String values could be acceptable (either with different settings, or different value).boolean
hasDeserializationFeatures(int featureMask)
Bulk access method for checking that all features specified by mask are enabled.boolean
hasSomeOfFeatures(int featureMask)
Bulk access method for checking that at least one of features specified by mask is enabled.boolean
hasValueDeserializerFor(JavaType type, java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> cause)
Method for checking whether we could find a deserializer for given type.JsonMappingException
instantiationException(java.lang.Class<?> instClass, java.lang.String msg0)
Helper method for constructing instantiation exception for specified type, to indicate that instantiation failed due to missing instantiator (creator; constructor or factory method).JsonMappingException
instantiationException(java.lang.Class<?> instClass, java.lang.Throwable cause)
Helper method for constructing instantiation exception for specified type, to indicate problem with physically constructing instance of specified class (missing constructor, exception from constructor)JsonMappingException
invalidTypeIdException(JavaType baseType, java.lang.String typeId, java.lang.String extraDesc)
boolean
isEnabled(StreamReadCapability cap)
Accessor for checking whether input format has specified capability or not.boolean
isEnabled(DeserializationFeature feat)
Convenience method for checking whether specified on/off feature is enabledboolean
isEnabled(MapperFeature feature)
Convenience method for checking whether specified serialization feature is enabled or not.abstract KeyDeserializer
keyDeserializerInstance(Annotated annotated, java.lang.Object deserDef)
ObjectBuffer
leaseObjectBuffer()
Method that can be used to get access to a reusable ObjectBuffer, useful for efficiently constructing Object arrays and Lists.JsonMappingException
mappingException(java.lang.Class<?> targetClass)
Deprecated.Since 2.8 usehandleUnexpectedToken(Class, JsonParser)
insteadJsonMappingException
mappingException(java.lang.Class<?> targetClass, JsonToken token)
Deprecated.Since 2.8 usehandleUnexpectedToken(Class, JsonParser)
insteadJsonMappingException
mappingException(java.lang.String message)
Deprecated.Since 2.9 use more specific error reporting methods insteadJsonMappingException
mappingException(java.lang.String msg, java.lang.Object... msgArgs)
Deprecated.Since 2.9 use more specific error reporting methods insteadJsonMappingException
missingTypeIdException(JavaType baseType, java.lang.String extraDesc)
java.util.Date
parseDate(java.lang.String dateStr)
Convenience method for parsing a Date from given String, using currently configured date format (accessed usingMapperConfig.getDateFormat()
).<T> T
readPropertyValue(JsonParser p, BeanProperty prop, JavaType type)
Same asreadPropertyValue(JsonParser, BeanProperty, Class)
but with fully resolvedJavaType
as target: needs to be used for generic types, for example.<T> T
readPropertyValue(JsonParser p, BeanProperty prop, java.lang.Class<T> type)
Convenience method that may be used by composite or container deserializers, for reading one-off values for the composite type, taking into account annotations that the property (passed to this method -- usually property that has custom serializer that called this method) has.JsonNode
readTree(JsonParser p)
Convenience method for reading the value that passedJsonParser
points to as aJsonNode
.<T> T
readTreeAsValue(JsonNode n, JavaType targetType)
<T> T
readTreeAsValue(JsonNode n, java.lang.Class<T> targetType)
Helper method similar toObjectReader.treeToValue(TreeNode, Class)
which will read contents of given tree (JsonNode
) and bind them into specified target type.<T> T
readValue(JsonParser p, JavaType type)
<T> T
readValue(JsonParser p, java.lang.Class<T> type)
Convenience method that may be used by composite or container deserializers, for reading one-off values contained (for sequences, it is more efficient to actually fetch deserializer once for the whole collection).<T> T
reportBadCoercion(JsonDeserializer<?> src, java.lang.Class<?> targetType, java.lang.Object inputValue, java.lang.String msg, java.lang.Object... msgArgs)
Helper method used to indicate a problem with input in cases where specific input coercion was not allowed.<T> T
reportBadDefinition(JavaType type, java.lang.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> T
reportBadMerge(JsonDeserializer<?> deser)
Deprecated.Since 2.10 usehandleBadMerge(com.fasterxml.jackson.databind.JsonDeserializer<?>)
instead<T> T
reportBadPropertyDefinition(BeanDescription bean, BeanPropertyDefinition prop, java.lang.String msg, java.lang.Object... msgArgs)
Helper method called to indicate problem in POJO (serialization) definitions or settings regarding specific property (of a type), unrelated to actual JSON content to map.<T> T
reportBadTypeDefinition(BeanDescription bean, java.lang.String msg, java.lang.Object... msgArgs)
Helper method called to indicate problem in POJO (serialization) definitions or settings regarding specific Java type, unrelated to actual JSON content to map.<T> T
reportInputMismatch(BeanProperty prop, java.lang.String msg, java.lang.Object... msgArgs)
Helper method used to indicate a problem with input in cases where more specificreportXxx()
method was not available.<T> T
reportInputMismatch(JavaType targetType, java.lang.String msg, java.lang.Object... msgArgs)
Helper method used to indicate a problem with input in cases where more specificreportXxx()
method was not available.<T> T
reportInputMismatch(JsonDeserializer<?> src, java.lang.String msg, java.lang.Object... msgArgs)
Helper method used to indicate a problem with input in cases where more specificreportXxx()
method was not available.<T> T
reportInputMismatch(java.lang.Class<?> targetType, java.lang.String msg, java.lang.Object... msgArgs)
Helper method used to indicate a problem with input in cases where more specificreportXxx()
method was not available.void
reportMappingException(java.lang.String msg, java.lang.Object... msgArgs)
Deprecated.Since 2.9: use a more specific method, orreportBadDefinition(JavaType, String)
, orreportInputMismatch(com.fasterxml.jackson.databind.JsonDeserializer<?>, java.lang.String, java.lang.Object...)
insteadvoid
reportMissingContent(java.lang.String msg, java.lang.Object... msgArgs)
Deprecated.Since 2.9: not clear this ever occurs<T> T
reportPropertyInputMismatch(JavaType targetType, java.lang.String propertyName, java.lang.String msg, java.lang.Object... msgArgs)
Helper method used to indicate a problem with input in cases where more specificreportXxx()
method was not available.<T> T
reportPropertyInputMismatch(java.lang.Class<?> targetType, java.lang.String propertyName, java.lang.String msg, java.lang.Object... msgArgs)
Helper method used to indicate a problem with input in cases where more specificreportXxx()
method was not available.<T> T
reportTrailingTokens(java.lang.Class<?> targetType, JsonParser p, JsonToken trailingToken)
void
reportUnknownProperty(java.lang.Object instanceOrClass, java.lang.String fieldName, JsonDeserializer<?> deser)
<T> T
reportUnresolvedObjectId(ObjectIdReader oidReader, java.lang.Object bean)
void
reportWrongTokenException(JsonParser p, JsonToken expToken, java.lang.String msg, java.lang.Object... msgArgs)
Deprecated.void
reportWrongTokenException(JavaType targetType, JsonToken expToken, java.lang.String msg, java.lang.Object... msgArgs)
Method for deserializers to call when the token encountered was of type different than what should be seen at that position, usually within a sequence of expected tokens.void
reportWrongTokenException(JsonDeserializer<?> deser, JsonToken expToken, java.lang.String msg, java.lang.Object... msgArgs)
Method for deserializers to call when the token encountered was of type different than what should be seen at that position, usually within a sequence of expected tokens.void
reportWrongTokenException(java.lang.Class<?> targetType, JsonToken expToken, java.lang.String msg, java.lang.Object... msgArgs)
Method for deserializers to call when the token encountered was of type different than what should be seen at that position, usually within a sequence of expected tokens.void
returnObjectBuffer(ObjectBuffer buf)
Method to call to return object buffer previously leased withleaseObjectBuffer()
.DeserializationContext
setAttribute(java.lang.Object key, java.lang.Object value)
Method for setting per-call value of given attribute.JsonMappingException
unknownTypeException(JavaType type, java.lang.String id, java.lang.String extraDesc)
JsonMappingException
weirdKeyException(java.lang.Class<?> keyClass, java.lang.String keyValue, java.lang.String msg)
Helper method for constructing exception to indicate that given JSON Object field name was not in format to be able to deserialize specified key type.JsonMappingException
weirdNativeValueException(java.lang.Object value, java.lang.Class<?> instClass)
Helper method for constructing exception to indicate that input JSON token of type "native value" (seeJsonToken.VALUE_EMBEDDED_OBJECT
) is of incompatible type (and there is no delegating creator or such to use) and can not be used to construct value of specified type (usually POJO).JsonMappingException
weirdNumberException(java.lang.Number value, java.lang.Class<?> instClass, java.lang.String msg)
Helper method for constructing exception to indicate that input JSON Number was not suitable for deserializing into given target type.JsonMappingException
weirdStringException(java.lang.String value, java.lang.Class<?> instClass, java.lang.String msgBase)
Helper method for constructing exception to indicate that input JSON String was not suitable for deserializing into given target type.JsonMappingException
wrongTokenException(JsonParser p, JsonToken expToken, java.lang.String msg)
Deprecated.JsonMappingException
wrongTokenException(JsonParser p, JavaType targetType, JsonToken expToken, java.lang.String extra)
Helper method for constructingJsonMappingException
to indicate that the token encountered was of type different than what should be seen at that position, usually within a sequence of expected tokens.JsonMappingException
wrongTokenException(JsonParser p, java.lang.Class<?> targetType, JsonToken expToken, java.lang.String extra)
-
Methods inherited from class com.fasterxml.jackson.databind.DatabindContext
constructType, converterInstance, objectIdGeneratorInstance, objectIdResolverInstance, reportBadDefinition, resolveAndValidateSubType, resolveSubType
-
-
-
-
Method Detail
-
getConfig
public DeserializationConfig getConfig()
Description copied from class:DatabindContext
Accessor to currently active configuration (both per-request configs and per-mapper config).- Specified by:
getConfig
in classDatabindContext
-
getActiveView
public final java.lang.Class<?> getActiveView()
Description copied from class:DatabindContext
Accessor for locating currently active view, if any; returns null if no view has been set.- Specified by:
getActiveView
in classDatabindContext
-
canOverrideAccessModifiers
public final boolean canOverrideAccessModifiers()
Description copied from class:DatabindContext
Convenience method for accessing serialization view in use (if any); equivalent to:getConfig().canOverrideAccessModifiers();
- Specified by:
canOverrideAccessModifiers
in classDatabindContext
-
isEnabled
public final boolean isEnabled(MapperFeature feature)
Description copied from class:DatabindContext
Convenience method for checking whether specified serialization feature is enabled or not. Shortcut for:getConfig().isEnabled(feature);
- Specified by:
isEnabled
in classDatabindContext
-
getDefaultPropertyFormat
public final JsonFormat.Value getDefaultPropertyFormat(java.lang.Class<?> baseType)
- Specified by:
getDefaultPropertyFormat
in classDatabindContext
-
getAnnotationIntrospector
public final AnnotationIntrospector getAnnotationIntrospector()
Description copied from class:DatabindContext
Convenience method for accessing serialization view in use (if any); equivalent to:getConfig().getAnnotationIntrospector();
- Specified by:
getAnnotationIntrospector
in classDatabindContext
-
getTypeFactory
public final TypeFactory getTypeFactory()
- Specified by:
getTypeFactory
in classDatabindContext
-
constructSpecializedType
public JavaType constructSpecializedType(JavaType baseType, java.lang.Class<?> subclass) throws java.lang.IllegalArgumentException
Description copied from class:DatabindContext
Convenience method for constructing subtypes, retaining generic type parameter (if any).Note: since 2.11 handling has varied a bit across serialization, deserialization.
- Specified by:
constructSpecializedType
in classDatabindContext
- Throws:
java.lang.IllegalArgumentException
-
getLocale
public java.util.Locale getLocale()
Method for accessing default Locale to use: convenience method forgetConfig().getLocale();
- Specified by:
getLocale
in classDatabindContext
-
getTimeZone
public java.util.TimeZone getTimeZone()
Method for accessing default TimeZone to use: convenience method forgetConfig().getTimeZone();
- Specified by:
getTimeZone
in classDatabindContext
-
getAttribute
public java.lang.Object getAttribute(java.lang.Object key)
Description copied from class:DatabindContext
Method for accessing attributes available in this context. Per-call attributes have highest precedence; attributes set viaObjectReader
orObjectWriter
have lower precedence.- Specified by:
getAttribute
in classDatabindContext
- Parameters:
key
- Key of the attribute to get- Returns:
- Value of the attribute, if any; null otherwise
-
setAttribute
public DeserializationContext setAttribute(java.lang.Object key, java.lang.Object value)
Description copied from class:DatabindContext
Method for setting per-call value of given attribute. This will override any previously defined value for the attribute within this context.- Specified by:
setAttribute
in classDatabindContext
- Parameters:
key
- Key of the attribute to setvalue
- Value to set attribute to- Returns:
- This context object, to allow chaining
-
getContextualType
public JavaType getContextualType()
Accessor toJavaType
of currently contextualizedContextualDeserializer
, if any. This is sometimes useful for genericJsonDeserializer
s that do not get passed (or do not retain) type information when being constructed: happens for example for deserializers constructed from annotations.- Returns:
- Type of
ContextualDeserializer
being contextualized, if process is on-going; null if not. - Since:
- 2.5
-
getFactory
public DeserializerFactory getFactory()
Method for getting currentDeserializerFactory
.
-
isEnabled
public final boolean isEnabled(DeserializationFeature feat)
Convenience method for checking whether specified on/off feature is enabled
-
isEnabled
public final boolean isEnabled(StreamReadCapability cap)
Accessor for checking whether input format has specified capability or not.- Returns:
- True if input format has specified capability; false if not
- Since:
- 2.12
-
getDeserializationFeatures
public final int getDeserializationFeatures()
Bulk access method for getting the bit mask of allDeserializationFeature
s that are enabled.- Since:
- 2.6
-
hasDeserializationFeatures
public final boolean hasDeserializationFeatures(int featureMask)
Bulk access method for checking that all features specified by mask are enabled.- Since:
- 2.3
-
hasSomeOfFeatures
public final boolean hasSomeOfFeatures(int featureMask)
Bulk access method for checking that at least one of features specified by mask is enabled.- Since:
- 2.6
-
getParser
public final JsonParser getParser()
Method for accessing the currently active parser. May be different from the outermost parser when content is buffered.Use of this method is discouraged: if code has direct access to the active parser, that should be used instead.
-
findInjectableValue
public final java.lang.Object findInjectableValue(java.lang.Object valueId, BeanProperty forProperty, java.lang.Object beanInstance) throws JsonMappingException
- Throws:
JsonMappingException
-
getBase64Variant
public final Base64Variant getBase64Variant()
Convenience method for accessing the default Base64 encoding used for decoding base64 encoded binary content. Same as calling:getConfig().getBase64Variant();
-
getNodeFactory
public final JsonNodeFactory getNodeFactory()
Convenience method, functionally equivalent to:getConfig().getNodeFactory();
-
findCoercionAction
public CoercionAction findCoercionAction(LogicalType targetType, java.lang.Class<?> targetClass, CoercionInputShape inputShape)
General-purpose accessor for finding what to do when specified coercion from shape that is now always allowed to be coerced from is requested.- Parameters:
targetType
- Logical target type of coerciontargetClass
- Physical target type of coercioninputShape
- Input shape to coerce from- Returns:
- CoercionAction configured for specific coercion
- Since:
- 2.12
-
findCoercionFromBlankString
public CoercionAction findCoercionFromBlankString(LogicalType targetType, java.lang.Class<?> targetClass, CoercionAction actionIfBlankNotAllowed)
More specialized accessor called in case of input being a blank String (one consisting of only white space characters with length of at least one). Will basically first determine if "blank as empty" is allowed: if not, returnsactionIfBlankNotAllowed
, otherwise returns action forCoercionInputShape.EmptyString
.- Parameters:
targetType
- Logical target type of coerciontargetClass
- Physical target type of coercionactionIfBlankNotAllowed
- Return value to use in case "blanks as empty" is not allowed- Returns:
- CoercionAction configured for specified coercion from blank string
- Since:
- 2.12
-
bufferForInputBuffering
public TokenBuffer bufferForInputBuffering(JsonParser p)
Factory method used for creatingTokenBuffer
to temporarily contain copy of content read from specified parser; usually for purpose of reading contents later on (possibly augmeneted with injected additional content)- Since:
- 2.13
-
bufferForInputBuffering
public final TokenBuffer bufferForInputBuffering()
Convenience method that is equivalent to:ctxt.bufferForInputBuffering(ctxt.getParser());
-
bufferAsCopyOfValue
public TokenBuffer bufferAsCopyOfValue(JsonParser p) throws java.io.IOException
Convenience method, equivalent to:TokenBuffer buffer = ctxt.bufferForInputBuffering(parser); buffer.copyCurrentStructure(parser); return buffer;
NOTE: the whole "current value" that parser points to is read and buffered, including Object and Array values (if parser pointing to start marker).
- Throws:
java.io.IOException
- Since:
- 2.9
-
hasValueDeserializerFor
public boolean hasValueDeserializerFor(JavaType type, java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> cause)
Method for checking whether we could find a deserializer for given type.- Parameters:
type
- Type to checkcause
- (optional) Reference set to root cause if no deserializer could be found due to exception (to find the reason for failure)- Since:
- 2.3
-
findContextualValueDeserializer
public final JsonDeserializer<java.lang.Object> findContextualValueDeserializer(JavaType type, BeanProperty prop) throws JsonMappingException
Method for finding a value deserializer, and creating a contextual version if necessary, for value reached via specified property.- Throws:
JsonMappingException
-
findNonContextualValueDeserializer
public final JsonDeserializer<java.lang.Object> findNonContextualValueDeserializer(JavaType type) throws JsonMappingException
Variant that will try to locate deserializer for current type, but without performing any contextualization (unlikefindContextualValueDeserializer(com.fasterxml.jackson.databind.JavaType, com.fasterxml.jackson.databind.BeanProperty)
) or checking for need to create aTypeDeserializer
(unlikefindRootValueDeserializer(JavaType)
. This method is usually called from withinResolvableDeserializer.resolve(com.fasterxml.jackson.databind.DeserializationContext)
, and expectation is that caller then calls eitherhandlePrimaryContextualization(JsonDeserializer, BeanProperty, JavaType)
orhandleSecondaryContextualization(JsonDeserializer, BeanProperty, JavaType)
at a later point, as necessary.- Throws:
JsonMappingException
- Since:
- 2.5
-
findRootValueDeserializer
public final JsonDeserializer<java.lang.Object> findRootValueDeserializer(JavaType type) throws JsonMappingException
Method for finding a deserializer for root-level value.- Throws:
JsonMappingException
-
findKeyDeserializer
public final KeyDeserializer findKeyDeserializer(JavaType keyType, BeanProperty prop) throws JsonMappingException
Convenience method, functionally same as:getDeserializerProvider().findKeyDeserializer(getConfig(), prop.getType(), prop);
- Throws:
JsonMappingException
-
findObjectId
public abstract ReadableObjectId findObjectId(java.lang.Object id, ObjectIdGenerator<?> generator, ObjectIdResolver resolver)
Method called to find and return entry corresponding to given Object Id: will add an entry if necessary, and never returns null
-
checkUnresolvedObjectId
public abstract void checkUnresolvedObjectId() throws UnresolvedForwardReference
Method called to ensure that every object id encounter during processing are resolved.- Throws:
UnresolvedForwardReference
-
constructType
public final JavaType constructType(java.lang.Class<?> cls)
Convenience method, functionally equivalent to:getConfig().constructType(cls);
-
findClass
public java.lang.Class<?> findClass(java.lang.String className) throws java.lang.ClassNotFoundException
Helper method that is to be used when resolving basic class name into Class instance, the reason being that it may be necessary to work around various ClassLoader limitations, as well as to handle primitive type signatures.- Throws:
java.lang.ClassNotFoundException
- Since:
- 2.6
-
leaseObjectBuffer
public final ObjectBuffer leaseObjectBuffer()
Method that can be used to get access to a reusable ObjectBuffer, useful for efficiently constructing Object arrays and Lists. Note that leased buffers should be returned once deserializer is done, to allow for reuse during same round of deserialization.
-
returnObjectBuffer
public final void returnObjectBuffer(ObjectBuffer buf)
Method to call to return object buffer previously leased withleaseObjectBuffer()
.- Parameters:
buf
- Returned object buffer
-
getArrayBuilders
public final ArrayBuilders getArrayBuilders()
Method for accessing object useful for building arrays of primitive types (such as int[]).
-
deserializerInstance
public abstract JsonDeserializer<java.lang.Object> deserializerInstance(Annotated annotated, java.lang.Object deserDef) throws JsonMappingException
- Throws:
JsonMappingException
-
keyDeserializerInstance
public abstract KeyDeserializer keyDeserializerInstance(Annotated annotated, java.lang.Object deserDef) throws JsonMappingException
- Throws:
JsonMappingException
-
handlePrimaryContextualization
public JsonDeserializer<?> handlePrimaryContextualization(JsonDeserializer<?> deser, BeanProperty prop, JavaType type) throws JsonMappingException
Method called for primary property deserializers (ones directly created to deserialize values of a POJO property), to handle details of resolvingContextualDeserializer
with given property context.- Parameters:
prop
- Property for which the given primary deserializer is used; never null.- Throws:
JsonMappingException
- Since:
- 2.5
-
handleSecondaryContextualization
public JsonDeserializer<?> handleSecondaryContextualization(JsonDeserializer<?> deser, BeanProperty prop, JavaType type) throws JsonMappingException
Method called for secondary property deserializers (ones NOT directly created to deal with an annotatable POJO property, but instead created as a component -- such as value deserializers for structured types, or deserializers for root values) to handle details of resolvingContextualDeserializer
with given property context. Given that these deserializers are not directly related to given property (or, in case of root value property, to any property), annotations accessible may or may not be relevant.- Parameters:
prop
- Property for which deserializer is used, if any; null when deserializing root values- Throws:
JsonMappingException
- Since:
- 2.5
-
parseDate
public java.util.Date parseDate(java.lang.String dateStr) throws java.lang.IllegalArgumentException
Convenience method for parsing a Date from given String, using currently configured date format (accessed usingMapperConfig.getDateFormat()
).Implementation will handle thread-safety issues related to date formats such that first time this method is called, date format is cloned, and cloned instance will be retained for use during this deserialization round.
- Throws:
java.lang.IllegalArgumentException
-
constructCalendar
public java.util.Calendar constructCalendar(java.util.Date d)
Convenience method for constructing Calendar instance set to specified time, to be modified and used by caller.
-
extractScalarFromObject
public java.lang.String extractScalarFromObject(JsonParser p, JsonDeserializer<?> deser, java.lang.Class<?> scalarType) throws java.io.IOException
Method to call in case incoming shape is Object Value (and parser thereby points toJsonToken.START_OBJECT
token), but a Scalar value (potentially coercible from String value) is expected. This would typically be used to deserializer a Number, Boolean value or some other "simple" unstructured value type.- Parameters:
p
- Actual parser to read content fromdeser
- Deserializer that needs extracted String valuescalarType
- Immediate type of scalar to extract; usually type deserializer handles but not always (for example, deserializer forint[]
would pass scalar type ofint
)- Returns:
- String value found; not
null
(exception should be thrown if no suitable value found) - Throws:
java.io.IOException
- If there are problems either reading content (underlying parser problem) or finding expected scalar value
-
readValue
public <T> T readValue(JsonParser p, java.lang.Class<T> type) throws java.io.IOException
Convenience method that may be used by composite or container deserializers, for reading one-off values contained (for sequences, it is more efficient to actually fetch deserializer once for the whole collection).NOTE: when deserializing values of properties contained in composite types, rather use
readPropertyValue(JsonParser, BeanProperty, Class)
; this method does not allow use of contextual annotations.- Throws:
java.io.IOException
- Since:
- 2.4
-
readValue
public <T> T readValue(JsonParser p, JavaType type) throws java.io.IOException
- Throws:
java.io.IOException
- Since:
- 2.4
-
readPropertyValue
public <T> T readPropertyValue(JsonParser p, BeanProperty prop, java.lang.Class<T> type) throws java.io.IOException
Convenience method that may be used by composite or container deserializers, for reading one-off values for the composite type, taking into account annotations that the property (passed to this method -- usually property that has custom serializer that called this method) has.- Parameters:
p
- Parser that points to the first token of the value to readprop
- Logical property of a POJO being type- Returns:
- Value of type
type
that was read - Throws:
java.io.IOException
- Since:
- 2.4
-
readPropertyValue
public <T> T readPropertyValue(JsonParser p, BeanProperty prop, JavaType type) throws java.io.IOException
Same asreadPropertyValue(JsonParser, BeanProperty, Class)
but with fully resolvedJavaType
as target: needs to be used for generic types, for example.- Throws:
java.io.IOException
- Since:
- 2.4
-
readTree
public JsonNode readTree(JsonParser p) throws java.io.IOException
Convenience method for reading the value that passedJsonParser
points to as aJsonNode
.- Parameters:
p
- Parser that points to the first token of the value to read- Returns:
- Value read as
JsonNode
- Throws:
java.io.IOException
- Since:
- 2.10
-
readTreeAsValue
public <T> T readTreeAsValue(JsonNode n, java.lang.Class<T> targetType) throws java.io.IOException
Helper method similar toObjectReader.treeToValue(TreeNode, Class)
which will read contents of given tree (JsonNode
) and bind them into specified target type. This is often used in two-phase deserialization in which content is first read as a tree, then manipulated (adding and/or removing properties of Object values, for example), and finally converted into actual target type using default deserialization logic for the type.NOTE: deserializer implementations should be careful not to try to recursively deserialize into target type deserializer has registered itself to handle.
- Parameters:
n
- Tree value to convert, if notnull
: ifnull
, will simply returnnull
targetType
- Type to deserialize contents ofn
into (ifn
notnull
)- Returns:
- Either
null
(ifn
wasnull
or a value of typetype
that was read from non-null
n
argument - Throws:
java.io.IOException
- Since:
- 2.13
-
readTreeAsValue
public <T> T readTreeAsValue(JsonNode n, JavaType targetType) throws java.io.IOException
Same asreadTreeAsValue(JsonNode, Class)
but will fully resolvedJavaType
astargetType
NOTE: deserializer implementations should be careful not to try to recursively deserialize into target type deserializer has registered itself to handle.
- Parameters:
n
- Tree value to converttargetType
- Type to deserialize contents ofn
into- Returns:
- Value of type
type
that was read - Throws:
java.io.IOException
- Since:
- 2.13
-
handleUnknownProperty
public boolean handleUnknownProperty(JsonParser p, JsonDeserializer<?> deser, java.lang.Object instanceOrClass, java.lang.String propName) throws java.io.IOException
Method that deserializers should call if they encounter an unrecognized property (and once that is not explicitly designed as ignorable), to inform possibly configuredDeserializationProblemHandler
s and let it handle the problem.- Returns:
- True if there was a configured problem handler that was able to handle the problem
- Throws:
java.io.IOException
-
handleWeirdKey
public java.lang.Object handleWeirdKey(java.lang.Class<?> keyClass, java.lang.String keyValue, java.lang.String msg, java.lang.Object... msgArgs) throws java.io.IOException
Method that deserializers should call if they encounter a String value that cannot be converted to expected key of aMap
valued property. Default implementation will try to callDeserializationProblemHandler.handleWeirdNumberValue(com.fasterxml.jackson.databind.DeserializationContext, java.lang.Class<?>, java.lang.Number, java.lang.String)
on configured handlers, if any, to allow for recovery; if recovery does not succeed, will throwInvalidFormatException
with given message.- Parameters:
keyClass
- Expected type for keykeyValue
- String value from which to deserialize keymsg
- Error message template caller wants to use if exception is to be thrownmsgArgs
- Optional arguments to use for message, if any- Returns:
- Key value to use
- Throws:
java.io.IOException
- To indicate unrecoverable problem, usually based onmsg
- Since:
- 2.8
-
handleWeirdStringValue
public java.lang.Object handleWeirdStringValue(java.lang.Class<?> targetClass, java.lang.String value, java.lang.String msg, java.lang.Object... msgArgs) throws java.io.IOException
Method that deserializers should call if they encounter a String value that cannot be converted to target property type, in cases where some String values could be acceptable (either with different settings, or different value). Default implementation will try to callDeserializationProblemHandler.handleWeirdStringValue(com.fasterxml.jackson.databind.DeserializationContext, java.lang.Class<?>, java.lang.String, java.lang.String)
on configured handlers, if any, to allow for recovery; if recovery does not succeed, will throwInvalidFormatException
with given message.- Parameters:
targetClass
- Type of property into which incoming number should be convertedvalue
- String value from which to deserialize property valuemsg
- Error message template caller wants to use if exception is to be thrownmsgArgs
- Optional arguments to use for message, if any- Returns:
- Property value to use
- Throws:
java.io.IOException
- To indicate unrecoverable problem, usually based onmsg
- Since:
- 2.8
-
handleWeirdNumberValue
public java.lang.Object handleWeirdNumberValue(java.lang.Class<?> targetClass, java.lang.Number value, java.lang.String msg, java.lang.Object... msgArgs) throws java.io.IOException
Method that deserializers should call if they encounter a numeric value that cannot be converted to target property type, in cases where some numeric values could be acceptable (either with different settings, or different numeric value). Default implementation will try to callDeserializationProblemHandler.handleWeirdNumberValue(com.fasterxml.jackson.databind.DeserializationContext, java.lang.Class<?>, java.lang.Number, java.lang.String)
on configured handlers, if any, to allow for recovery; if recovery does not succeed, will throwInvalidFormatException
with given message.- Parameters:
targetClass
- Type of property into which incoming number should be convertedvalue
- Number value from which to deserialize property valuemsg
- Error message template caller wants to use if exception is to be thrownmsgArgs
- Optional arguments to use for message, if any- Returns:
- Property value to use
- Throws:
java.io.IOException
- To indicate unrecoverable problem, usually based onmsg
- Since:
- 2.8
-
handleWeirdNativeValue
public java.lang.Object handleWeirdNativeValue(JavaType targetType, java.lang.Object badValue, JsonParser p) throws java.io.IOException
- Throws:
java.io.IOException
-
handleMissingInstantiator
public java.lang.Object handleMissingInstantiator(java.lang.Class<?> instClass, ValueInstantiator valueInst, JsonParser p, java.lang.String msg, java.lang.Object... msgArgs) throws java.io.IOException
Method that deserializers should call if they fail to instantiate value due to lack of viable instantiator (usually creator, that is, constructor or static factory method). Method should be called at point where value has not been decoded, so that handler has a chance to handle decoding using alternate mechanism, and handle underlying content (possibly by just skipping it) to keep input state valid- Parameters:
instClass
- Type that was to be instantiatedvalueInst
- (optional) Value instantiator to be used, if any; null if type does not use one for instantiation (custom deserialiers don't; standard POJO deserializer does)p
- Parser that points to the JSON value to decode- Returns:
- Object that should be constructed, if any; has to be of type
instClass
- Throws:
java.io.IOException
- Since:
- 2.9 (2.8 had alternate that did not take
ValueInstantiator
)
-
handleInstantiationProblem
public java.lang.Object handleInstantiationProblem(java.lang.Class<?> instClass, java.lang.Object argument, java.lang.Throwable t) throws java.io.IOException
Method that deserializers should call if they fail to instantiate value due to an exception that was thrown by constructor (or other mechanism used to create instances). Default implementation will try to callDeserializationProblemHandler.handleInstantiationProblem(com.fasterxml.jackson.databind.DeserializationContext, java.lang.Class<?>, java.lang.Object, java.lang.Throwable)
on configured handlers, if any, to allow for recovery; if recovery does not succeed, will throw exception constructed withinstantiationException(java.lang.Class<?>, java.lang.Throwable)
.- Parameters:
instClass
- Type that was to be instantiatedargument
- (optional) Argument that was passed to constructor or equivalent instantiator; often aString
.t
- Exception that caused failure- Returns:
- Object that should be constructed, if any; has to be of type
instClass
- Throws:
java.io.IOException
- Since:
- 2.8
-
handleUnexpectedToken
public java.lang.Object handleUnexpectedToken(java.lang.Class<?> instClass, JsonParser p) throws java.io.IOException
Method that deserializers should call if the first token of the value to deserialize is of unexpected type (that is, type of token that deserializer cannot handle). This could occur, for example, if a Number deserializer encounterJsonToken.START_ARRAY
instead ofJsonToken.VALUE_NUMBER_INT
orJsonToken.VALUE_NUMBER_FLOAT
.- Parameters:
instClass
- Type that was to be instantiatedp
- Parser that points to the JSON value to decode- Returns:
- Object that should be constructed, if any; has to be of type
instClass
- Throws:
java.io.IOException
- Since:
- 2.8
-
handleUnexpectedToken
public java.lang.Object handleUnexpectedToken(java.lang.Class<?> instClass, JsonToken t, JsonParser p, java.lang.String msg, java.lang.Object... msgArgs) throws java.io.IOException
Method that deserializers should call if the first token of the value to deserialize is of unexpected type (that is, type of token that deserializer cannot handle). This could occur, for example, if a Number deserializer encounterJsonToken.START_ARRAY
instead ofJsonToken.VALUE_NUMBER_INT
orJsonToken.VALUE_NUMBER_FLOAT
.- Parameters:
instClass
- Type that was to be instantiatedt
- Token encountered that does match expectedp
- Parser that points to the JSON value to decode- Returns:
- Object that should be constructed, if any; has to be of type
instClass
- Throws:
java.io.IOException
- Since:
- 2.8
-
handleUnexpectedToken
public java.lang.Object handleUnexpectedToken(JavaType targetType, JsonParser p) throws java.io.IOException
Method that deserializers should call if the first token of the value to deserialize is of unexpected type (that is, type of token that deserializer cannot handle). This could occur, for example, if a Number deserializer encounterJsonToken.START_ARRAY
instead ofJsonToken.VALUE_NUMBER_INT
orJsonToken.VALUE_NUMBER_FLOAT
.- Parameters:
targetType
- Type that was to be instantiatedp
- Parser that points to the JSON value to decode- Returns:
- Object that should be constructed, if any; has to be of type
instClass
- Throws:
java.io.IOException
- Since:
- 2.10
-
handleUnexpectedToken
public java.lang.Object handleUnexpectedToken(JavaType targetType, JsonToken t, JsonParser p, java.lang.String msg, java.lang.Object... msgArgs) throws java.io.IOException
Method that deserializers should call if the first token of the value to deserialize is of unexpected type (that is, type of token that deserializer cannot handle). This could occur, for example, if a Number deserializer encounterJsonToken.START_ARRAY
instead ofJsonToken.VALUE_NUMBER_INT
orJsonToken.VALUE_NUMBER_FLOAT
.- Parameters:
targetType
- Type that was to be instantiatedt
- Token encountered that does not match expectedp
- Parser that points to the JSON value to decode- Returns:
- Object that should be constructed, if any; has to be of type
instClass
- Throws:
java.io.IOException
- Since:
- 2.10
-
handleUnknownTypeId
public JavaType handleUnknownTypeId(JavaType baseType, java.lang.String id, TypeIdResolver idResolver, java.lang.String extraDesc) throws java.io.IOException
Method that deserializers should call if they encounter a type id (for polymorphic deserialization) that cannot be resolved to an actual type; usually since there is no mapping defined. Default implementation will try to callDeserializationProblemHandler.handleUnknownTypeId(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.JavaType, java.lang.String, com.fasterxml.jackson.databind.jsontype.TypeIdResolver, java.lang.String)
on configured handlers, if any, to allow for recovery; if recovery does not succeed, will throw exception constructed withinvalidTypeIdException(com.fasterxml.jackson.databind.JavaType, java.lang.String, java.lang.String)
.- Parameters:
baseType
- Base type from which resolution startsid
- Type id that could not be convertedextraDesc
- Additional problem description to add to default exception message, if resolution fails.- Returns:
JavaType
that id resolves to- Throws:
java.io.IOException
- To indicate unrecoverable problem, if resolution cannot be made to work- Since:
- 2.8
-
handleMissingTypeId
public JavaType handleMissingTypeId(JavaType baseType, TypeIdResolver idResolver, java.lang.String extraDesc) throws java.io.IOException
- Throws:
java.io.IOException
- Since:
- 2.9
-
handleBadMerge
public void handleBadMerge(JsonDeserializer<?> deser) throws JsonMappingException
Method that deserializer may call if it is called to do an update ("merge") but deserializer operates on a non-mergeable type. Although this should usually be caught earlier, sometimes it may only be caught during operation and if so this is the method to call. Note that ifMapperFeature.IGNORE_MERGE_FOR_UNMERGEABLE
is enabled, this method will simply return null; otherwiseInvalidDefinitionException
will be thrown.- Throws:
JsonMappingException
- Since:
- 2.10
-
reportWrongTokenException
public void reportWrongTokenException(JsonDeserializer<?> deser, JsonToken expToken, java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Method for deserializers to call when the token encountered was of type different than what should be seen at that position, usually within a sequence of expected tokens. Note that this method will throw aJsonMappingException
and no recovery is attempted (viaDeserializationProblemHandler
, as problem is considered to be difficult to recover from, in general.- Throws:
JsonMappingException
- Since:
- 2.9
-
reportWrongTokenException
public void reportWrongTokenException(JavaType targetType, JsonToken expToken, java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Method for deserializers to call when the token encountered was of type different than what should be seen at that position, usually within a sequence of expected tokens. Note that this method will throw aJsonMappingException
and no recovery is attempted (viaDeserializationProblemHandler
, as problem is considered to be difficult to recover from, in general.- Throws:
JsonMappingException
- Since:
- 2.9
-
reportWrongTokenException
public void reportWrongTokenException(java.lang.Class<?> targetType, JsonToken expToken, java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Method for deserializers to call when the token encountered was of type different than what should be seen at that position, usually within a sequence of expected tokens. Note that this method will throw aJsonMappingException
and no recovery is attempted (viaDeserializationProblemHandler
, as problem is considered to be difficult to recover from, in general.- Throws:
JsonMappingException
- Since:
- 2.9
-
reportUnresolvedObjectId
public <T> T reportUnresolvedObjectId(ObjectIdReader oidReader, java.lang.Object bean) throws JsonMappingException
- Throws:
JsonMappingException
- Since:
- 2.8
-
reportInputMismatch
public <T> T reportInputMismatch(JsonDeserializer<?> src, java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Helper method used to indicate a problem with input in cases where more specificreportXxx()
method was not available.- Throws:
JsonMappingException
- Since:
- 2.9
-
reportInputMismatch
public <T> T reportInputMismatch(java.lang.Class<?> targetType, java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Helper method used to indicate a problem with input in cases where more specificreportXxx()
method was not available.- Throws:
JsonMappingException
- Since:
- 2.9
-
reportInputMismatch
public <T> T reportInputMismatch(JavaType targetType, java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Helper method used to indicate a problem with input in cases where more specificreportXxx()
method was not available.- Throws:
JsonMappingException
- Since:
- 2.9
-
reportInputMismatch
public <T> T reportInputMismatch(BeanProperty prop, java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Helper method used to indicate a problem with input in cases where more specificreportXxx()
method was not available.- Throws:
JsonMappingException
- Since:
- 2.9
-
reportPropertyInputMismatch
public <T> T reportPropertyInputMismatch(java.lang.Class<?> targetType, java.lang.String propertyName, java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Helper method used to indicate a problem with input in cases where more specificreportXxx()
method was not available.- Throws:
JsonMappingException
- Since:
- 2.10
-
reportPropertyInputMismatch
public <T> T reportPropertyInputMismatch(JavaType targetType, java.lang.String propertyName, java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Helper method used to indicate a problem with input in cases where more specificreportXxx()
method was not available.- Throws:
JsonMappingException
- Since:
- 2.10
-
reportBadCoercion
public <T> T reportBadCoercion(JsonDeserializer<?> src, java.lang.Class<?> targetType, java.lang.Object inputValue, java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Helper method used to indicate a problem with input in cases where specific input coercion was not allowed.- Throws:
JsonMappingException
- Since:
- 2.12
-
reportTrailingTokens
public <T> T reportTrailingTokens(java.lang.Class<?> targetType, JsonParser p, JsonToken trailingToken) throws JsonMappingException
- Throws:
JsonMappingException
-
reportWrongTokenException
@Deprecated public void reportWrongTokenException(JsonParser p, JsonToken expToken, java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Deprecated.- Throws:
JsonMappingException
-
reportUnknownProperty
@Deprecated public void reportUnknownProperty(java.lang.Object instanceOrClass, java.lang.String fieldName, JsonDeserializer<?> deser) throws JsonMappingException
Deprecated.Helper method for reporting a problem with unhandled unknown property.- Parameters:
instanceOrClass
- Either value being populated (if one has been instantiated), or Class that indicates type that would be (or have been) instantiateddeser
- Deserializer that had the problem, if called by deserializer (or on behalf of one)- Throws:
JsonMappingException
-
reportMissingContent
@Deprecated public void reportMissingContent(java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Deprecated.Since 2.9: not clear this ever occurs- Throws:
JsonMappingException
- Since:
- 2.8
-
reportBadTypeDefinition
public <T> T reportBadTypeDefinition(BeanDescription bean, java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Helper method called to indicate problem in POJO (serialization) definitions or settings regarding specific Java type, unrelated to actual JSON content to map. Default behavior is to construct and throw aJsonMappingException
.- Throws:
JsonMappingException
- Since:
- 2.9
-
reportBadPropertyDefinition
public <T> T reportBadPropertyDefinition(BeanDescription bean, BeanPropertyDefinition prop, java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Helper method called to indicate problem in POJO (serialization) definitions or settings regarding specific property (of a type), unrelated to actual JSON content to map. Default behavior is to construct and throw aJsonMappingException
.- Throws:
JsonMappingException
- Since:
- 2.9
-
reportBadDefinition
public <T> T reportBadDefinition(JavaType type, java.lang.String msg) throws JsonMappingException
Description copied from class:DatabindContext
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
.- Specified by:
reportBadDefinition
in classDatabindContext
- Throws:
JsonMappingException
-
reportBadMerge
@Deprecated public <T> T reportBadMerge(JsonDeserializer<?> deser) throws JsonMappingException
Deprecated.Since 2.10 usehandleBadMerge(com.fasterxml.jackson.databind.JsonDeserializer<?>)
instead- Throws:
JsonMappingException
-
wrongTokenException
public JsonMappingException wrongTokenException(JsonParser p, JavaType targetType, JsonToken expToken, java.lang.String extra)
Helper method for constructingJsonMappingException
to indicate that the token encountered was of type different than what should be seen at that position, usually within a sequence of expected tokens. Note that most of the time this method should NOT be directly called; instead,reportWrongTokenException(com.fasterxml.jackson.databind.JsonDeserializer<?>, com.fasterxml.jackson.core.JsonToken, java.lang.String, java.lang.Object...)
should be called and will call this method as necessary.- Since:
- 2.9
-
wrongTokenException
public JsonMappingException wrongTokenException(JsonParser p, java.lang.Class<?> targetType, JsonToken expToken, java.lang.String extra)
-
wrongTokenException
@Deprecated public JsonMappingException wrongTokenException(JsonParser p, JsonToken expToken, java.lang.String msg)
Deprecated.
-
weirdKeyException
public JsonMappingException weirdKeyException(java.lang.Class<?> keyClass, java.lang.String keyValue, java.lang.String msg)
Helper method for constructing exception to indicate that given JSON Object field name was not in format to be able to deserialize specified key type. Note that most of the time this method should NOT be called; instead,handleWeirdKey(java.lang.Class<?>, java.lang.String, java.lang.String, java.lang.Object...)
should be called which will call this method if necessary.
-
weirdStringException
public JsonMappingException weirdStringException(java.lang.String value, java.lang.Class<?> instClass, java.lang.String msgBase)
Helper method for constructing exception to indicate that input JSON String was not suitable for deserializing into given target type. Note that most of the time this method should NOT be called; instead,handleWeirdStringValue(java.lang.Class<?>, java.lang.String, java.lang.String, java.lang.Object...)
should be called which will call this method if necessary.- Parameters:
value
- String value from input being deserializedinstClass
- Type that String should be deserialized intomsgBase
- Message that describes specific problem- Since:
- 2.1
-
weirdNumberException
public JsonMappingException weirdNumberException(java.lang.Number value, java.lang.Class<?> instClass, java.lang.String msg)
Helper method for constructing exception to indicate that input JSON Number was not suitable for deserializing into given target type. Note that most of the time this method should NOT be called; instead,handleWeirdNumberValue(java.lang.Class<?>, java.lang.Number, java.lang.String, java.lang.Object...)
should be called which will call this method if necessary.
-
weirdNativeValueException
public JsonMappingException weirdNativeValueException(java.lang.Object value, java.lang.Class<?> instClass)
Helper method for constructing exception to indicate that input JSON token of type "native value" (seeJsonToken.VALUE_EMBEDDED_OBJECT
) is of incompatible type (and there is no delegating creator or such to use) and can not be used to construct value of specified type (usually POJO). Note that most of the time this method should NOT be called; instead,handleWeirdNativeValue(com.fasterxml.jackson.databind.JavaType, java.lang.Object, com.fasterxml.jackson.core.JsonParser)
should be called which will call this method- Since:
- 2.9
-
instantiationException
public JsonMappingException instantiationException(java.lang.Class<?> instClass, java.lang.Throwable cause)
Helper method for constructing instantiation exception for specified type, to indicate problem with physically constructing instance of specified class (missing constructor, exception from constructor)Note that most of the time this method should NOT be called directly; instead,
handleInstantiationProblem(java.lang.Class<?>, java.lang.Object, java.lang.Throwable)
should be called which will call this method if necessary.
-
instantiationException
public JsonMappingException instantiationException(java.lang.Class<?> instClass, java.lang.String msg0)
Helper method for constructing instantiation exception for specified type, to indicate that instantiation failed due to missing instantiator (creator; constructor or factory method).Note that most of the time this method should NOT be called; instead,
handleMissingInstantiator(java.lang.Class<?>, com.fasterxml.jackson.databind.deser.ValueInstantiator, com.fasterxml.jackson.core.JsonParser, java.lang.String, java.lang.Object...)
should be called which will call this method if necessary.
-
invalidTypeIdException
public JsonMappingException invalidTypeIdException(JavaType baseType, java.lang.String typeId, java.lang.String extraDesc)
-
missingTypeIdException
public JsonMappingException missingTypeIdException(JavaType baseType, java.lang.String extraDesc)
- Since:
- 2.9
-
unknownTypeException
@Deprecated public JsonMappingException unknownTypeException(JavaType type, java.lang.String id, java.lang.String extraDesc)
Deprecated.- Since:
- 2.5
-
endOfInputException
@Deprecated public JsonMappingException endOfInputException(java.lang.Class<?> instClass)
Deprecated.Since 2.8; currently no way to catch EOF at databind levelHelper method for constructing exception to indicate that end-of-input was reached while still expecting more tokens to deserialize value of specified type.
-
reportMappingException
@Deprecated public void reportMappingException(java.lang.String msg, java.lang.Object... msgArgs) throws JsonMappingException
Deprecated.Since 2.9: use a more specific method, orreportBadDefinition(JavaType, String)
, orreportInputMismatch(com.fasterxml.jackson.databind.JsonDeserializer<?>, java.lang.String, java.lang.Object...)
insteadFallback method that may be called if no otherreportXxx
is applicable -- but only in that case.- Throws:
JsonMappingException
- Since:
- 2.8
-
mappingException
@Deprecated public JsonMappingException mappingException(java.lang.String message)
Deprecated.Since 2.9 use more specific error reporting methods insteadHelper method for constructing generic mapping exception with specified message and current location information. Note that application code should almost always call one ofhandleXxx
methods, orreportMappingException(String, Object...)
instead.- Since:
- 2.6
-
mappingException
@Deprecated public JsonMappingException mappingException(java.lang.String msg, java.lang.Object... msgArgs)
Deprecated.Since 2.9 use more specific error reporting methods insteadHelper method for constructing generic mapping exception with specified message and current location information Note that application code should almost always call one ofhandleXxx
methods, orreportMappingException(String, Object...)
instead.- Since:
- 2.6
-
mappingException
@Deprecated public JsonMappingException mappingException(java.lang.Class<?> targetClass)
Deprecated.Since 2.8 usehandleUnexpectedToken(Class, JsonParser)
insteadHelper method for constructing generic mapping exception for specified type
-
mappingException
@Deprecated public JsonMappingException mappingException(java.lang.Class<?> targetClass, JsonToken token)
Deprecated.Since 2.8 usehandleUnexpectedToken(Class, JsonParser)
instead
-
-