package foundation.translator; import java.math.BigDecimal; import java.util.Date; import foundation.server.config.DBaseType; import foundation.util.Util; public abstract class ITranslator { protected String format; public ITranslator() { } public abstract String toString(Object value) throws Exception; public String toString(Object value, String defaultValue) { if (value == null) { return defaultValue; } try { return toString(value); } catch (Exception e) { return defaultValue; } } public abstract String toSqlString(DBaseType dbaseType, Object value) throws Exception; public String toSqlString(DBaseType dbaseType, Object value, String prefix, String suffix) throws Exception { if (value == null) { return "null"; } String result = toSqlString(dbaseType, value); if (prefix != null) { result = prefix + result; } if (suffix != null) { result = result + suffix; } return result; } public abstract String toJSONString(Object value) throws Exception; public abstract String toSchemaString(Object value) throws Exception; public abstract Integer toInteger(Object value) throws Exception; public Integer toInteger(Object value, Integer defaultValue) { if (value == null) { return defaultValue; } try { return toInteger(value); } catch (Exception e) { return defaultValue; } } public abstract Double toDouble(Object value)throws Exception; public Double toDouble(Object value, Double defaultValue) { if (value == null || value == ValueType.Null) { return defaultValue; } try { return toDouble(value); } catch (Exception e) { return defaultValue; } } public abstract BigDecimal toBigDecimal(Object value) throws Exception; public BigDecimal toBigDecimal(Object value, BigDecimal defaultValue) { if (value == null || value == ValueType.Null) { return defaultValue; } try { return toBigDecimal(value); } catch (Exception e) { return defaultValue; } } public abstract Boolean toBoolean(Object value) throws Exception; public Boolean toBoolean(Object value, boolean defaultValue) { if (Util.isEmpty(value)) { return defaultValue; } try { return toBoolean(value); } catch (Exception e) { return defaultValue; } } public abstract Date toDate(Object value) throws Exception; public Date toDate(Object value, Date defaultValue) { try { Date result = toDate(value); if (result == null) { result = defaultValue; } return result; } catch (Exception e) { return defaultValue; } } public abstract Object toTranslatorTypeValue(Object value) throws Exception; public abstract Object loadObjectFrom(String value) throws Exception; public Object loadObjectFrom(String value, Object defaultValue) { try { return loadObjectFrom(value); } catch (Exception e) { return defaultValue; } } public abstract Class getDataClass(); public void setFormat(String format) { this.format = format; } public String getFormat() { return format; } }