package com.fasterxml.jackson.databind.exc;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.PropertyName;
import com.fasterxml.jackson.databind.util.ClassUtil;
Exception thrown if a `null` value is being encountered for a property designed as "fail on null" property (see JsonSetter
). Since: 2.9
/**
* Exception thrown if a `null` value is being encountered for a property
* designed as "fail on null" property (see {@link com.fasterxml.jackson.annotation.JsonSetter}).
*
* @since 2.9
*/
public class InvalidNullException
extends MismatchedInputException // since 2.9
{
private static final long serialVersionUID = 1L; // silly Eclipse, warnings
Name of property, if known, for which null was encountered.
/**
* Name of property, if known, for which null was encountered.
*/
protected final PropertyName _propertyName;
/*
/**********************************************************
/* Life-cycle
/**********************************************************
*/
protected InvalidNullException(DeserializationContext ctxt, String msg,
PropertyName pname)
{
super(ctxt.getParser(), msg);
_propertyName = pname;
}
public static InvalidNullException from(DeserializationContext ctxt,
PropertyName name, JavaType type)
{
String msg = String.format("Invalid `null` value encountered for property %s",
ClassUtil.quotedOr(name, "<UNKNOWN>"));
InvalidNullException exc = new InvalidNullException(ctxt, msg, name);
if (type != null) {
exc.setTargetType(type);
}
return exc;
}
public PropertyName getPropertyName() {
return _propertyName;
}
}