diff options
Diffstat (limited to 'src/main/java/com/fasterxml/jackson/databind/deser/impl/UnsupportedTypeDeserializer.java')
-rw-r--r-- | src/main/java/com/fasterxml/jackson/databind/deser/impl/UnsupportedTypeDeserializer.java | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/impl/UnsupportedTypeDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/deser/impl/UnsupportedTypeDeserializer.java new file mode 100644 index 000000000..a7a39148b --- /dev/null +++ b/src/main/java/com/fasterxml/jackson/databind/deser/impl/UnsupportedTypeDeserializer.java @@ -0,0 +1,39 @@ +package com.fasterxml.jackson.databind.deser.impl; + +import java.io.IOException; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; + +/** + * Special bogus "serializer" that will throw + * {@link com.fasterxml.jackson.databind.exc.MismatchedInputException} + * if an attempt is made to deserialize a value. + * This is used for "known unknown" types: types that we can recognize + * but can not support easily (or support known to be added via extension + * module). + * + * @since 2.12 + */ +public class UnsupportedTypeDeserializer extends StdDeserializer<Object> +{ + private static final long serialVersionUID = 1L; + + protected final JavaType _type; + + protected final String _message; + + public UnsupportedTypeDeserializer(JavaType t, String m) { + super(t); + _type = t; + _message = m; + } + + @Override + public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + ctxt.reportBadDefinition(_type, _message); + return null; + } +} |