1 package com.fasterxml.jackson.databind.ser.impl;
2
3 import java.io.IOException;
4 import java.lang.reflect.Type;
5
6 import com.fasterxml.jackson.core.*;
7 import com.fasterxml.jackson.databind.JavaType;
8 import com.fasterxml.jackson.databind.JsonMappingException;
9 import com.fasterxml.jackson.databind.JsonNode;
10 import com.fasterxml.jackson.databind.SerializerProvider;
11 import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
12 import com.fasterxml.jackson.databind.ser.std.StdSerializer;
13
14 /**
15  * Special bogus "serializer" that will throw
16  * {@link JsonMappingException} if its {@link #serialize}
17  * gets invoked. Most commonly registered as handler for unknown types,
18  * as well as for catching unintended usage (like trying to use null
19  * as Map/Object key).
20  */

21 @SuppressWarnings("serial")
22 public class FailingSerializer
23     extends StdSerializer<Object>
24 {
25     protected final String _msg;
26     
27     public FailingSerializer(String msg) {
28         super(Object.class);
29         _msg = msg;
30     }
31     
32     @Override
33     public void serialize(Object value, JsonGenerator g, SerializerProvider provider) throws IOException
34     {
35         provider.reportMappingProblem(_msg);
36     }
37
38     @Override
39     public JsonNode getSchema(SerializerProvider provider, Type typeHint) throws JsonMappingException {
40         return null;
41     }
42     
43     @Override
44     public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
45     {
46         ;
47     }
48 }
49