org.codehaus.jackson.map.ser.std.RawSerializer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ehcache Show documentation
Show all versions of ehcache Show documentation
Ehcache is an open source, standards-based cache used to boost performance,
offload the database and simplify scalability. Ehcache is robust, proven and full-featured and
this has made it the most widely-used Java-based cache.
package org.codehaus.jackson.map.ser.std;
import java.lang.reflect.Type;
import java.io.IOException;
import org.codehaus.jackson.*;
import org.codehaus.jackson.map.*;
import org.codehaus.jackson.map.annotate.JacksonStdImpl;
/**
* This is a simple dummy serializer that will just output raw values by calling toString()
* on value to serialize.
*
* @since 1.7
*/
@JacksonStdImpl
public class RawSerializer
extends SerializerBase
{
/**
* Constructor takes in expected type of values; but since caller
* typically can not really provide actual type parameter, we will
* just take wild card and coerce type.
*/
public RawSerializer(Class> cls) {
super(cls, false);
}
@Override
public void serialize(T value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonGenerationException
{
jgen.writeRawValue(value.toString());
}
@Override
public void serializeWithType(T value, JsonGenerator jgen, SerializerProvider provider,
TypeSerializer typeSer)
throws IOException, JsonProcessingException
{
typeSer.writeTypePrefixForScalar(value, jgen);
serialize(value, jgen, provider);
typeSer.writeTypeSuffixForScalar(value, jgen);
}
@Override
public JsonNode getSchema(SerializerProvider provider, Type typeHint)
{
// type not really known, but since it is a JSON string:
return createSchemaNode("string", true);
}
}