package foundation.value;
|
|
import java.math.BigDecimal;
|
|
import foundation.server.config.DBaseType;
|
import foundation.util.Util;
|
|
|
public class BooleanTranslator extends ITranslator {
|
|
@Override
|
public Boolean load(Object object) {
|
if (object == null || object == ValueType.Null) {
|
return false;
|
}
|
|
if (object instanceof Boolean) {
|
return (Boolean) object;
|
}
|
else if (object instanceof String) {
|
String value = String.valueOf(object).toLowerCase();
|
|
if ("1".equals(value) || "t".equals(value) || "true".equals(value) ||
|
"y".equals(value) || "是".equals(value) || "yes".equals(value)) {
|
return true;
|
}
|
|
return false;
|
}
|
|
return Boolean.valueOf(object.toString());
|
}
|
|
@Override
|
public Boolean load(String value) throws Exception {
|
if (Util.isEmpty(value)) {
|
return null;
|
}
|
|
value = value.toLowerCase();
|
|
if ("1".equals(value) || "t".equals(value) || "true".equals(value) ||
|
"y".equals(value) || "是".equals(value) || "yes".equals(value)) {
|
return true;
|
}
|
|
return false;
|
}
|
|
@Override
|
public String toString(Object value) throws Exception {
|
if (value == null || value == ValueType.Null) {
|
return null;
|
}
|
|
Boolean bool = false;
|
|
if (value instanceof Boolean) {
|
bool = (Boolean) value;
|
}
|
else {
|
bool = toBoolean(value, false);
|
}
|
|
return bool.toString();
|
}
|
|
@Override
|
public String toSqlString(DBaseType dbaseType, Object value) throws Exception {
|
if (value == null || value == ValueType.Null) {
|
return "null";
|
}
|
|
Boolean bool = false;
|
|
if (value instanceof Boolean) {
|
bool = (Boolean) value;
|
}
|
else {
|
bool = toBoolean(value, false);
|
}
|
|
if (bool) {
|
return Util.quotedStr("T");
|
}
|
else {
|
return Util.quotedStr("F");
|
}
|
}
|
|
@Override
|
public String toJSONString(Object value) throws Exception {
|
if (value == null || value == ValueType.Null) {
|
return "null";
|
}
|
|
Boolean bool = false;
|
|
if (value instanceof Boolean) {
|
bool = (Boolean) value;
|
}
|
else {
|
bool = toBoolean(value, false);
|
}
|
|
return bool.toString();
|
}
|
|
@Override
|
public String toSchemaString(Object value) throws Exception {
|
if (value == null || value == ValueType.Null) {
|
return "";
|
}
|
|
Boolean bool = false;
|
|
if (value instanceof Boolean) {
|
bool = (Boolean) value;
|
}
|
else {
|
bool = toBoolean(value, false);
|
}
|
|
return bool.toString();
|
}
|
|
public Boolean toBoolean(Object object){
|
if (object == null || object == ValueType.Null) {
|
return false;
|
}
|
|
if (object instanceof Boolean) {
|
return (Boolean) object;
|
}
|
else if (object instanceof String) {
|
String value = String.valueOf(object).toLowerCase();
|
|
if ("1".equals(value) || "t".equals(value) || "true".equals(value) ||
|
"y".equals(value) || "是".equals(value) || "yes".equals(value)) {
|
return true;
|
}
|
|
return false;
|
}
|
else if (object instanceof Integer) {
|
Integer value = (Integer) object;
|
return value > 0;
|
}
|
else if (object instanceof BigDecimal) {
|
return ((BigDecimal)object).compareTo(BigDecimal.ZERO) > 0;
|
}
|
else if (object instanceof Double) {
|
return (Double)object > 0;
|
}
|
|
return Boolean.valueOf(object.toString());
|
}
|
|
|
public boolean toBoolean(Object object, boolean defaultValue){
|
if (object == null || object == ValueType.Null) {
|
return false;
|
}
|
|
String value = String.valueOf(object).toLowerCase();
|
|
if ("yes".equals(value) || "t".equals(value) || "是".equals(value) || "true".equals(value)
|
|| "y".equals(value) || "有".equals(value) || "1".equals(value)) {
|
return true;
|
}
|
|
return false;
|
}
|
|
@Override
|
public Object toTranslatorTypeValue(Object value) throws Exception {
|
if (value == null) {
|
return null;
|
}
|
|
if (value instanceof Boolean) {
|
return (Boolean)value ? "T" : "F";
|
}
|
|
return (String)value;
|
}
|
|
@Override
|
public String checkType(Object object) {
|
return null;
|
}
|
|
/*
|
@Override
|
public Integer toInteger(Object object) throws Exception {
|
if ((boolean)object) {
|
return 1;
|
}
|
return 0;
|
}
|
|
@Override
|
public Double toDouble(Object object) throws Exception {
|
if ((boolean)object) {
|
return 1.0;
|
}
|
return 0.0;
|
}
|
|
@Override
|
public BigDecimal toBigDecimal(Object object) throws Exception {
|
if ((boolean)object) {
|
return BigDecimal.ONE;
|
}
|
return BigDecimal.ZERO;
|
}
|
|
@Override
|
public Date toDate(Object object) throws Exception {
|
return null;
|
}
|
|
@Override
|
public Clob toClob(Object object) throws Exception {
|
return null;
|
}
|
*/
|
|
@Override
|
public Class<?> getDataClass() {
|
return Boolean.class;
|
}
|
}
|