package com.fasterxml.jackson.databind.exc;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.BeanDescription;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition;

Intermediate exception type used as the base class for all JsonMappingExceptions that are due to problems with target type definition; usually a problem with annotations used on a class or its properties. This is in contrast to MismatchedInputException which signals a problem with input to map.
Since:2.9
/** * Intermediate exception type used as the base class for all {@link JsonMappingException}s * that are due to problems with target type definition; usually a problem with * annotations used on a class or its properties. * This is in contrast to {@link MismatchedInputException} which * signals a problem with input to map. * * @since 2.9 */
@SuppressWarnings("serial") public class InvalidDefinitionException extends JsonMappingException { protected final JavaType _type; protected transient BeanDescription _beanDesc; protected transient BeanPropertyDefinition _property; protected InvalidDefinitionException(JsonParser p, String msg, JavaType type) { super(p, msg); _type = type; _beanDesc = null; _property = null; } protected InvalidDefinitionException(JsonGenerator g, String msg, JavaType type) { super(g, msg); _type = type; _beanDesc = null; _property = null; } protected InvalidDefinitionException(JsonParser p, String msg, BeanDescription bean, BeanPropertyDefinition prop) { super(p, msg); _type = (bean == null) ? null : bean.getType(); _beanDesc = bean; _property = prop; } protected InvalidDefinitionException(JsonGenerator g, String msg, BeanDescription bean, BeanPropertyDefinition prop) { super(g, msg); _type = (bean == null) ? null : bean.getType(); _beanDesc = bean; _property = prop; } public static InvalidDefinitionException from(JsonParser p, String msg, BeanDescription bean, BeanPropertyDefinition prop) { return new InvalidDefinitionException(p, msg, bean, prop); } public static InvalidDefinitionException from(JsonParser p, String msg, JavaType type) { return new InvalidDefinitionException(p, msg, type); } public static InvalidDefinitionException from(JsonGenerator g, String msg, BeanDescription bean, BeanPropertyDefinition prop) { return new InvalidDefinitionException(g, msg, bean, prop); } public static InvalidDefinitionException from(JsonGenerator g, String msg, JavaType type) { return new InvalidDefinitionException(g, msg, type); }
Accessor for type fully resolved type that had the problem; this should always known and available, never null
/** * Accessor for type fully resolved type that had the problem; this should always * known and available, never <code>null</code> */
public JavaType getType() { return _type; }
Accessor for type definition (class) that had the definition problem, if any; may sometimes be undefined or unknown; if so, returns null.
/** * Accessor for type definition (class) that had the definition problem, if any; may sometimes * be undefined or unknown; if so, returns <code>null</code>. */
public BeanDescription getBeanDescription() { return _beanDesc; }
Accessor for property that had the definition problem if any (none, for example if the problem relates to type in general), if known. If not known (or relevant), returns null.
/** * Accessor for property that had the definition problem if any * (none, for example if the problem relates to type in general), * if known. If not known (or relevant), returns <code>null</code>. */
public BeanPropertyDefinition getProperty() { return _property; } }