JavaSqlTimestampDeserializer.java
package tools.jackson.databind.ext.sql;
import java.text.DateFormat;
import java.util.Date;
import tools.jackson.core.JacksonException;
import tools.jackson.core.JsonParser;
import tools.jackson.databind.DeserializationContext;
import tools.jackson.databind.deser.jdk.DateBasedDeserializer;
/**
* Simple deserializer for handling {@link java.sql.Timestamp} values.
*<p>
* One way to customize Timestamp formats accepted is to override method
* {@link DeserializationContext#parseDate} that this basic
* deserializer calls.
*/
public class JavaSqlTimestampDeserializer extends DateBasedDeserializer<java.sql.Timestamp>
{
public final static JavaSqlTimestampDeserializer instance = new JavaSqlTimestampDeserializer();
public JavaSqlTimestampDeserializer() { super(java.sql.Timestamp.class); }
public JavaSqlTimestampDeserializer(JavaSqlTimestampDeserializer src, DateFormat df, String formatString) {
super(src, df, formatString);
}
@Override
protected JavaSqlTimestampDeserializer withDateFormat(DateFormat df, String formatString) {
return new JavaSqlTimestampDeserializer(this, df, formatString);
}
@Override // since 2.12
public Object getEmptyValue(DeserializationContext ctxt) {
return new java.sql.Timestamp(0L);
}
@Override
public java.sql.Timestamp deserialize(JsonParser p, DeserializationContext ctxt)
throws JacksonException
{
Date d = _parseDate(p, ctxt);
return (d == null) ? null : new java.sql.Timestamp(d.getTime());
}
}