package frame.data.convert; import java.math.BigDecimal; import java.util.Date; import frame.data.DataType; import frame.data.Variant; public class BooleanTranslator extends Convertor { public Object loadToObject(String value) throws Exception { if (value == null) { return false; } value = value.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; } return false; } public Variant loadToVariant(String value) throws Exception { Object object = loadToObject(value); Variant variant = new Variant(); variant.setValue(object, DataType.Boolean); return variant; } public String toString(Object value) throws Exception { if (value != null) { Boolean bool = (Boolean) value; return String.valueOf(bool); } return null; } public String toSqlString(Object value) throws Exception { if (value != null) { Boolean bool = (Boolean) value; if (bool) { return "T"; } else { return "F"; } } return null; } public String toSqlString(String prefix, Object value, String suffix) throws Exception { return toSqlString(value); } public String toJSONString(Object value) throws Exception { if (value != null) { Boolean bool = (Boolean) value; return String.valueOf(bool); } return "null"; } @Override public Integer toInteger(Object object) throws Exception { throw new Exception("can not translate boolean (" + object + ") to Integer"); } @Override public Double toDouble(Object object) throws Exception { throw new Exception("can not translate boolean (" + object + ") to Double"); } @Override public BigDecimal toBigDecimal(Object object) throws Exception { throw new Exception("can not translate boolean (" + object + ") to BigDecimal"); } public Boolean toBoolean(Object object) throws Exception { return (Boolean)object; } public Date toDate(Object object) throws Exception { throw new Exception("can not translate boolean (" + object + ") to Date"); } public Object toSelfType(Object value) throws Exception { return toBoolean(value); } }