package frame.variant.translator;
|
|
import java.math.BigDecimal;
|
import java.util.Date;
|
|
import frame.util.Util;
|
import frame.variant.ValueType;
|
import frame.variant.Value;
|
|
|
public class BigDecimalTranslator extends ITranslator {
|
|
@Override
|
public String toString(Object value) throws Exception {
|
if (value == null) {
|
return null;
|
}
|
|
return value.toString();
|
}
|
|
@Override
|
public String toSqlString(Object value) throws Exception {
|
if (value == null) {
|
return "null";
|
}
|
|
return value.toString();
|
}
|
|
@Override
|
public String toJSONString(Object value) throws Exception {
|
if (value == null) {
|
return "null";
|
}
|
|
return value.toString();
|
}
|
|
@Override
|
public String toSchemaString(Object value) throws Exception {
|
if (value == null) {
|
return "";
|
}
|
|
return value.toString();
|
}
|
|
@Override
|
public Integer toInteger(Object value) throws Exception {
|
if (value == null) {
|
return null;
|
}
|
|
return ((BigDecimal)value).intValue();
|
}
|
|
@Override
|
public Double toDouble(Object value) throws Exception {
|
if (value == null) {
|
return null;
|
}
|
|
return ((BigDecimal)value).doubleValue();
|
}
|
|
public BigDecimal toBigDecimal(Object value) throws Exception {
|
if (value == null) {
|
return null;
|
}
|
|
return (BigDecimal)value;
|
}
|
|
public Boolean toBoolean(Object value) throws Exception {
|
if (value == null) {
|
return false;
|
}
|
|
|
return ((BigDecimal)value).compareTo(BigDecimal.ZERO) > 0;
|
}
|
|
public Date toDate(Object value) throws Exception {
|
if (value == null) {
|
return null;
|
}
|
|
return new Date(((BigDecimal)value).longValue());
|
}
|
|
@Override
|
public Object toTranslatorTypeValue(Object value) throws Exception {
|
return new BigDecimal(value.toString());
|
}
|
|
public Object loadObjectFrom(String value) throws Exception {
|
if (Util.isEmptyStr(value)) {
|
return null;
|
}
|
|
return BigDecimal.valueOf(Double.valueOf(value));
|
}
|
|
@Override
|
public Value loadVariantFrom(String value) throws Exception {
|
Object object = loadObjectFrom(value);
|
|
Value variant = new Value();
|
variant.setData(object, ValueType.Decimal);
|
|
return variant;
|
}
|
|
@Override
|
public Value loadVariantFrom(String value, Object defaultValue) {
|
try {
|
return loadVariantFrom(value);
|
}
|
catch (Exception e) {
|
Value variant = new Value();
|
variant.setData(defaultValue, ValueType.Decimal);
|
return variant;
|
}
|
}
|
|
@Override
|
public Class<?> getDataClass() {
|
return BigDecimal.class;
|
}
|
|
}
|