Class DeserializationContext

    • Method Detail

      • 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 class DatabindContext
      • 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 class DatabindContext
      • 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 class DatabindContext
      • 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 class DatabindContext
        Throws:
        java.lang.IllegalArgumentException
      • getLocale

        public java.util.Locale getLocale()
        Method for accessing default Locale to use: convenience method for
           getConfig().getLocale();
        
        Specified by:
        getLocale in class DatabindContext
      • getTimeZone

        public java.util.TimeZone getTimeZone()
        Method for accessing default TimeZone to use: convenience method for
           getConfig().getTimeZone();
        
        Specified by:
        getTimeZone in class DatabindContext
      • 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 via ObjectReader or ObjectWriter have lower precedence.
        Specified by:
        getAttribute in class DatabindContext
        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 class DatabindContext
        Parameters:
        key - Key of the attribute to set
        value - Value to set attribute to
        Returns:
        This context object, to allow chaining
      • getContextualType

        public JavaType getContextualType()
        Accessor to JavaType of currently contextualized ContextualDeserializer, if any. This is sometimes useful for generic JsonDeserializers 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
      • 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 all DeserializationFeatures 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.

      • 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 coercion
        targetClass - Physical target type of coercion
        inputShape - 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, returns actionIfBlankNotAllowed, otherwise returns action for CoercionInputShape.EmptyString.
        Parameters:
        targetType - Logical target type of coercion
        targetClass - Physical target type of coercion
        actionIfBlankNotAllowed - 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 creating TokenBuffer 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 check
        cause - (optional) Reference set to root cause if no deserializer could be found due to exception (to find the reason for failure)
        Since:
        2.3
      • 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
      • 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 with leaseObjectBuffer().
        Parameters:
        buf - Returned object buffer
      • getArrayBuilders

        public final ArrayBuilders getArrayBuilders()
        Method for accessing object useful for building arrays of primitive types (such as int[]).
      • 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 resolving ContextualDeserializer 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 using MapperConfig.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 to JsonToken.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 from
        deser - Deserializer that needs extracted String value
        scalarType - Immediate type of scalar to extract; usually type deserializer handles but not always (for example, deserializer for int[] would pass scalar type of int)
        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 read
        prop - Logical property of a POJO being type
        Returns:
        Value of type type that was read
        Throws:
        java.io.IOException
        Since:
        2.4
      • readTree

        public JsonNode readTree​(JsonParser p)
                          throws java.io.IOException
        Convenience method for reading the value that passed JsonParser points to as a JsonNode.
        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 to ObjectReader.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 not null: if null, will simply return null
        targetType - Type to deserialize contents of n into (if n not null)
        Returns:
        Either null (if n was null or a value of type type 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 as readTreeAsValue(JsonNode, Class) but will fully resolved JavaType as targetType

        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
        targetType - Type to deserialize contents of n 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 configured DeserializationProblemHandlers 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 a Map valued property. Default implementation will try to call DeserializationProblemHandler.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 throw InvalidFormatException with given message.
        Parameters:
        keyClass - Expected type for key
        keyValue - String value from which to deserialize key
        msg - Error message template caller wants to use if exception is to be thrown
        msgArgs - Optional arguments to use for message, if any
        Returns:
        Key value to use
        Throws:
        java.io.IOException - To indicate unrecoverable problem, usually based on msg
        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 call DeserializationProblemHandler.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 throw InvalidFormatException with given message.
        Parameters:
        targetClass - Type of property into which incoming number should be converted
        value - String value from which to deserialize property value
        msg - Error message template caller wants to use if exception is to be thrown
        msgArgs - Optional arguments to use for message, if any
        Returns:
        Property value to use
        Throws:
        java.io.IOException - To indicate unrecoverable problem, usually based on msg
        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 call DeserializationProblemHandler.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 throw InvalidFormatException with given message.
        Parameters:
        targetClass - Type of property into which incoming number should be converted
        value - Number value from which to deserialize property value
        msg - Error message template caller wants to use if exception is to be thrown
        msgArgs - Optional arguments to use for message, if any
        Returns:
        Property value to use
        Throws:
        java.io.IOException - To indicate unrecoverable problem, usually based on msg
        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 instantiated
        valueInst - (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)
      • 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 encounter JsonToken.START_ARRAY instead of JsonToken.VALUE_NUMBER_INT or JsonToken.VALUE_NUMBER_FLOAT.
        Parameters:
        instClass - Type that was to be instantiated
        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.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 encounter JsonToken.START_ARRAY instead of JsonToken.VALUE_NUMBER_INT or JsonToken.VALUE_NUMBER_FLOAT.
        Parameters:
        instClass - Type that was to be instantiated
        t - Token encountered that does match expected
        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.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 encounter JsonToken.START_ARRAY instead of JsonToken.VALUE_NUMBER_INT or JsonToken.VALUE_NUMBER_FLOAT.
        Parameters:
        targetType - Type that was to be instantiated
        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.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 encounter JsonToken.START_ARRAY instead of JsonToken.VALUE_NUMBER_INT or JsonToken.VALUE_NUMBER_FLOAT.
        Parameters:
        targetType - Type that was to be instantiated
        t - Token encountered that does not match expected
        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.10
      • handleMissingTypeId

        public JavaType handleMissingTypeId​(JavaType baseType,
                                            TypeIdResolver idResolver,
                                            java.lang.String extraDesc)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
        Since:
        2.9
      • 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 a JsonMappingException and no recovery is attempted (via DeserializationProblemHandler, 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 a JsonMappingException and no recovery is attempted (via DeserializationProblemHandler, 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 a JsonMappingException and no recovery is attempted (via DeserializationProblemHandler, as problem is considered to be difficult to recover from, in general.
        Throws:
        JsonMappingException
        Since:
        2.9
      • 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 specific reportXxx() 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 specific reportXxx() 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 specific reportXxx() 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 specific reportXxx() 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 specific reportXxx() 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 specific reportXxx() 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
      • 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 a JsonMappingException.
        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 a JsonMappingException.
        Throws:
        JsonMappingException
        Since:
        2.9
      • 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 deserialized
        instClass - Type that String should be deserialized into
        msgBase - Message that describes specific problem
        Since:
        2.1
      • 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.

      • 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
      • endOfInputException

        @Deprecated
        public JsonMappingException endOfInputException​(java.lang.Class<?> instClass)
        Deprecated.
        Since 2.8; currently no way to catch EOF at databind level
        Helper method for constructing exception to indicate that end-of-input was reached while still expecting more tokens to deserialize value of specified type.
      • mappingException

        @Deprecated
        public JsonMappingException mappingException​(java.lang.String message)
        Deprecated.
        Since 2.9 use more specific error reporting methods instead
        Helper method for constructing generic mapping exception with specified message and current location information. Note that application code should almost always call one of handleXxx methods, or reportMappingException(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 instead
        Helper method for constructing generic mapping exception with specified message and current location information Note that application code should almost always call one of handleXxx methods, or reportMappingException(String, Object...) instead.
        Since:
        2.6