package foundation.value;
|
|
import java.sql.Timestamp;
|
import java.text.DateFormat;
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
|
import foundation.server.config.DBaseType;
|
import foundation.util.Util;
|
import oracle.sql.TIMESTAMP;
|
|
|
public class TimeStampTranslator extends ITranslator {
|
|
private static String DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
|
private static String DateFormat = "yyyy-MM-dd";
|
private DateFormat dateFormater;
|
|
|
public TimeStampTranslator() {
|
dateFormater = new SimpleDateFormat(DateFormat);
|
}
|
|
@Override
|
public Timestamp load(Object value){
|
if (value == null || value == ValueType.Null) {
|
return null;
|
}
|
|
if (value instanceof Timestamp) {
|
return (Timestamp)value;
|
} else if (value instanceof TIMESTAMP) {
|
return (Timestamp)value;
|
} else if (value instanceof Date) {
|
Date date = (Date) value;
|
return new Timestamp(date.getTime());
|
} else if (value instanceof Long) {
|
return new Timestamp(Long.valueOf((long)value));
|
}
|
|
String dateString = value.toString();
|
return Timestamp.valueOf(dateString);
|
}
|
|
@Override
|
public Timestamp load(String value) throws Exception {
|
if (value == null) {
|
return null;
|
}
|
|
return Timestamp.valueOf(value);
|
}
|
|
public String toString(Object value) throws Exception {
|
if (value == null || value == ValueType.Null) {
|
return null;
|
}
|
|
Date date = (Date)value;
|
return dateFormater.format(date);
|
}
|
|
public String toSqlString(DBaseType dbaseType, Object value) throws Exception {
|
if (value == null || value == ValueType.Null) {
|
return "null";
|
}
|
|
Timestamp date = toTimestamp(value);
|
|
if (dbaseType.isMySQL()) {
|
return "\"" + dateFormater.format(date) + "\"";
|
}
|
else if (dbaseType.isSQLServer()) {
|
return "'" + dateFormater.format(date) + "'";
|
}
|
else if (dbaseType.isOracle()) {
|
return "to_timestamp(\'" + dateFormater.format(date) + "\', 'YYYY-MM-dd HH24:mi:ss')";
|
}
|
|
return "\"" + dateFormater.format(date) + "\"";
|
}
|
|
public String toJSONString(Object value) throws Exception {
|
if (value == null || value == ValueType.Null) {
|
return "null";
|
}
|
|
Date date = (Date)value;
|
return "\"" + dateFormater.format(date) + "\"";
|
}
|
|
public String toSchemaString(Object value) throws Exception {
|
if (value == null || value == ValueType.Null) {
|
return "";
|
}
|
|
Date date = (Date)value;
|
return "\"" + dateFormater.format(date) + "\"";
|
}
|
|
public Timestamp toTimestamp(Object object) throws Exception {
|
if (object == null || object == ValueType.Null) {
|
return null;
|
}
|
|
if (object instanceof String) {
|
String dateString = object.toString();
|
return Timestamp.valueOf(dateString);
|
} else if (object instanceof Date) {
|
Date date = (Date) object;
|
return new Timestamp(date.getTime());
|
} else if (object instanceof Long) {
|
return new Timestamp(Long.valueOf((long)object));
|
} else if (object instanceof Timestamp) {
|
return (Timestamp)object;
|
} else if (object instanceof TIMESTAMP) {
|
return (Timestamp)object;
|
}
|
return null;
|
}
|
|
@Override
|
public Object toTranslatorTypeValue(Object value) throws Exception {
|
return load(value);
|
}
|
|
@Override
|
public void setFormat(String format) {
|
if (Util.isEmpty(format)) {
|
format = DateTimeFormat;
|
}
|
|
this.format = format;
|
dateFormater = new SimpleDateFormat(format);
|
}
|
|
@Override
|
public String checkType(Object object) {
|
return null;
|
}
|
|
@Override
|
public Class<?> getDataClass() {
|
return Date.class;
|
}
|
}
|