package com.revolsys.util.number;
import java.math.BigDecimal;
import com.revolsys.datatype.AbstractDataType;
import com.revolsys.datatype.DataTypes;
public class BigDecimals extends AbstractDataType {
public static boolean equalsNotNull(final BigDecimal number1, final BigDecimal number2) {
if (number1.compareTo(number2) == 0) {
return true;
} else {
return false;
}
}
public static boolean isNumber(final Object value) {
if (value == null) {
return false;
} else if (value instanceof Number) {
return true;
} else {
try {
toValid(value);
return true;
} catch (final Throwable t) {
return false;
}
}
}
public static String toString(final BigDecimal number) {
return number.toPlainString();
}
public static BigDecimal toValid(final Object value) {
if (value == null) {
return null;
} else if (value instanceof BigDecimal) {
final BigDecimal number = (BigDecimal)value;
return number.stripTrailingZeros();
} else {
final String string = DataTypes.toString(value);
return new BigDecimal(string).stripTrailingZeros();
}
}
public BigDecimals() {
super("decimal", BigDecimal.class, false);
}
@Override
protected boolean equalsNotNull(final Object value1, final Object value2) {
return equalsNotNull((BigDecimal)value1, (BigDecimal)value2);
}
@Override
protected Object toObjectDo(final Object value) {
final String string = DataTypes.toString(value);
final BigDecimal decimal = new BigDecimal(string);
return decimal.stripTrailingZeros();
}
@Override
protected String toStringDo(final Object value) {
return ((BigDecimal)value).toPlainString();
}
}