package foundation.translator;
|
|
import java.math.BigDecimal;
|
import java.text.DateFormat;
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
|
import foundation.server.config.DBaseType;
|
import foundation.util.Util;
|
|
|
public class StringTranslator extends ITranslator {
|
|
|
@Override
|
public String toString(Object value) throws Exception {
|
if (value == null || value == ValueType.Null) {
|
return null;
|
}
|
|
return value.toString();
|
}
|
|
@Override
|
public String toSqlString(DBaseType dbaseType, Object value) throws Exception {
|
if (value == null || value == ValueType.Null) {
|
return "null";
|
}
|
|
return "'" + value + "'";
|
}
|
|
@Override
|
public String toJSONString(Object value) throws Exception {
|
if (value == null || value == ValueType.Null) {
|
return "null";
|
}
|
|
return "\"" + value.toString() + "\"";
|
}
|
|
@Override
|
public String toSchemaString(Object value) throws Exception {
|
if (value == null || value == ValueType.Null) {
|
return "";
|
}
|
|
return "\"" + value.toString() + "\"";
|
}
|
|
@Override
|
public Integer toInteger(Object value) throws Exception {
|
if (Util.isEmpty(value)) {
|
return null;
|
}
|
|
return Integer.valueOf(String.valueOf(value));
|
}
|
|
@Override
|
public Double toDouble(Object value) throws Exception {
|
if (Util.isEmpty(value)) {
|
return null;
|
}
|
|
return Double.valueOf(String.valueOf(value));
|
}
|
|
@Override
|
public BigDecimal toBigDecimal(Object value) throws Exception {
|
if (Util.isEmpty(value)) {
|
return null;
|
}
|
|
return BigDecimal.valueOf(Double.valueOf(String.valueOf(value)));
|
}
|
|
@Override
|
public Boolean toBoolean(Object object) throws Exception {
|
if (object == null || object == ValueType.Null) {
|
return false;
|
}
|
|
String value = String.valueOf(object).toLowerCase();
|
|
if ("t".equals(value)) {
|
return true;
|
}
|
|
if ("true".equals(value)) {
|
return true;
|
}
|
|
if ("y".equals(value)) {
|
return true;
|
}
|
|
if ("yes".equals(value)) {
|
return true;
|
}
|
|
if ("是".equals(value)) {
|
return true;
|
}
|
|
if ("有".equals(value)) {
|
return true;
|
}
|
|
if ("1".equals(value)) {
|
return true;
|
}
|
|
return false;
|
}
|
|
@Override
|
public Date toDate(Object value) throws Exception {
|
if (value == null || value == ValueType.Null) {
|
return null;
|
}
|
|
String fomater = null;
|
String str = String.valueOf(value).replace('T', ' ');
|
|
if (str.indexOf("/") == 4) {
|
fomater = "yyyy/MM/dd";
|
}
|
else if (str.indexOf("/") == 2 || str.indexOf("/") == 1) {
|
fomater = "MM/dd/yyyy";
|
}
|
else if (str.indexOf("-") == 2 || str.indexOf("-") == 1) {
|
fomater = "MM-dd-yyyy";
|
}
|
else if (str.indexOf("-") == 4 && str.indexOf(":")<0) {
|
fomater = "yyyy-MM-dd";
|
}
|
else if (str.indexOf("-") == 4 && str.indexOf(":")>0) {
|
if(str.split(":").length == 3){
|
fomater = "yyyy-MM-dd HH:mm:ss";
|
}
|
else{
|
str = str + ":00";
|
fomater = "yyyy-MM-dd HH:mm:00";
|
}
|
|
}
|
else if (str.indexOf(".") == 2 || str.indexOf(".") == 1) {
|
fomater = "MM.dd.yyyy";
|
}
|
else if (str.indexOf(".") == 4) {
|
fomater = "yyyy.MM.dd";
|
}
|
else if (str.indexOf("-") < 0 && str.indexOf("/") < 0) {
|
fomater = "yyyyMMdd";
|
}
|
|
DateFormat dateFormat = new SimpleDateFormat(fomater);
|
return dateFormat.parse(str);
|
}
|
|
@Override
|
public Object toTranslatorTypeValue(Object value) throws Exception {
|
return toString(value);
|
}
|
|
@Override
|
public Object loadObjectFrom(String value) throws Exception {
|
return value;
|
}
|
|
@Override
|
public Class<?> getDataClass() {
|
return String.class;
|
}
|
}
|