package frame.variant.translator; import java.math.BigDecimal; import java.util.Date; import frame.variant.Value; public abstract class ITranslator { protected String format; public ITranslator() { } public abstract String toString(Object value) throws Exception; public String toString(Object value, String defaultValue) { try { return toString(value); } catch (Exception e) { return defaultValue; } } public abstract String toSqlString(Object value) throws Exception; public String toSqlString(String prefix, Object value, String suffix) throws Exception { if (value == null) { return "null"; } String result = toSqlString(value); if (prefix != null) { result = result + prefix; } 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) { 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) { try { return toBigDecimal(value); } catch (Exception e) { return defaultValue; } } public abstract Boolean toBoolean(Object value) throws Exception; public Boolean toBoolean(Object value, boolean 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 { return toDate(value); } 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 Value loadVariantFrom(String value) throws Exception; public abstract Value loadVariantFrom(String value, Object defaultValue); public abstract Class getDataClass(); public void setFormat(String format) { this.format = format; } public String getFormat() { return format; } }