1 package com.fasterxml.jackson.databind.ser.std;
2
3 import java.io.IOException;
4 import java.lang.reflect.Type;
5
6 import com.fasterxml.jackson.core.*;
7
8 import com.fasterxml.jackson.databind.JavaType;
9 import com.fasterxml.jackson.databind.JsonMappingException;
10 import com.fasterxml.jackson.databind.JsonNode;
11 import com.fasterxml.jackson.databind.SerializerProvider;
12 import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
13 import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
14 import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
15
16
22 @JacksonStdImpl
23 public final class StringSerializer
24
25
26
27 extends StdScalarSerializer<Object>
28 {
29 private static final long serialVersionUID = 1L;
30
31 public StringSerializer() { super(String.class, false); }
32
33 @Override
34 public boolean isEmpty(SerializerProvider prov, Object value) {
35 String str = (String) value;
36 return str.length() == 0;
37 }
38
39 @Override
40 public void serialize(Object value, JsonGenerator gen, SerializerProvider provider) throws IOException {
41 gen.writeString((String) value);
42 }
43
44 @Override
45 public final void serializeWithType(Object value, JsonGenerator gen, SerializerProvider provider,
46 TypeSerializer typeSer) throws IOException
47 {
48
49 gen.writeString((String) value);
50 }
51
52 @Override
53 public JsonNode getSchema(SerializerProvider provider, Type typeHint) {
54 return createSchemaNode("string", true);
55 }
56
57 @Override
58 public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint) throws JsonMappingException {
59 visitStringFormat(visitor, typeHint);
60 }
61 }
62