package io.ebeaninternal.server.type;
import io.ebean.config.JsonConfig;
import io.ebeaninternal.server.core.BasicTypeConverter;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.sql.Types;
import java.util.Date;
ScalarType for java.util.Date.
/**
* ScalarType for java.util.Date.
*/
public class ScalarTypeUtilDate {
public static class TimestampType extends ScalarTypeBaseDateTime<java.util.Date> {
public TimestampType(JsonConfig.DateTime mode) {
super(mode, java.util.Date.class, false, Types.TIMESTAMP);
}
@Override
protected String toJsonNanos(Date value) {
return String.valueOf(value.getTime());
}
@Override
protected String toJsonISO8601(Date value) {
return dateTimeParser.format(value);
}
@Override
public long convertToMillis(Date value) {
return value.getTime();
}
@Override
public java.util.Date read(DataReader dataReader) throws SQLException {
Timestamp timestamp = dataReader.getTimestamp();
if (timestamp == null) {
return null;
} else {
return new java.util.Date(timestamp.getTime());
}
}
@Override
public void bind(DataBind dataBind, java.util.Date value) throws SQLException {
if (value == null) {
dataBind.setNull(Types.TIMESTAMP);
} else {
dataBind.setTimestamp(new Timestamp(value.getTime()));
}
}
@Override
public Object toJdbcType(Object value) {
return BasicTypeConverter.toTimestamp(value);
}
@Override
public java.util.Date toBeanType(Object value) {
return BasicTypeConverter.toUtilDate(value);
}
@Override
public Date convertFromTimestamp(Timestamp ts) {
return new java.util.Date(ts.getTime());
}
@Override
public Timestamp convertToTimestamp(Date date) {
return new Timestamp(date.getTime());
}
@Override
public java.util.Date convertFromMillis(long systemTimeMillis) {
return new java.util.Date(systemTimeMillis);
}
}
public static class DateType extends ScalarTypeBaseDate<java.util.Date> {
public DateType() {
super(Date.class, false, Types.DATE);
}
@Override
public long convertToMillis(java.util.Date value) {
return value.getTime();
}
@Override
public Date convertFromDate(java.sql.Date ts) {
return new java.util.Date(ts.getTime());
}
@Override
public java.sql.Date convertToDate(Date date) {
return new java.sql.Date(date.getTime());
}
@Override
public Object toJdbcType(Object value) {
return BasicTypeConverter.toDate(value);
}
@Override
public java.util.Date toBeanType(Object value) {
return BasicTypeConverter.toUtilDate(value);
}
}
}