com.fasterxml.jackson.databind.ser.std.DateSerializer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of swagger-all Show documentation
Show all versions of swagger-all Show documentation
swagger-all is a rebundled verison of Swagger as one OSGi bundle.
The newest version!
package com.fasterxml.jackson.databind.ser.std;
import java.io.IOException;
import java.text.DateFormat;
import java.util.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
/**
* For efficiency, we will serialize Dates as longs, instead of
* potentially more readable Strings.
*/
@JacksonStdImpl
public class DateSerializer
extends DateTimeSerializerBase
{
/**
* Default instance that is used when no contextual configuration
* is needed.
*/
public static final DateSerializer instance = new DateSerializer();
public DateSerializer() {
this(null, null);
}
public DateSerializer(Boolean useTimestamp, DateFormat customFormat) {
super(Date.class, useTimestamp, customFormat);
}
@Override
public DateSerializer withFormat(Boolean timestamp, DateFormat customFormat) {
return new DateSerializer(timestamp, customFormat);
}
@Override
protected long _timestamp(Date value) {
return (value == null) ? 0L : value.getTime();
}
@Override
public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonGenerationException
{
if (_asTimestamp(provider)) {
jgen.writeNumber(_timestamp(value));
} else if (_customFormat != null) {
// 21-Feb-2011, tatu: not optimal, but better than alternatives:
synchronized (_customFormat) {
jgen.writeString(_customFormat.format(value));
}
} else {
provider.defaultSerializeDateValue(value, jgen);
}
}
}