aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/fasterxml/jackson/databind/deser/impl/UnsupportedTypeDeserializer.java
diff options
context:
space:
mode:
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.java39
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;
+ }
+}