package jeffaschenk.commons.util;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
/**
* Simple Formatter Class specific to the Client application
*
* @author jeffaschenk@gmail.com
*/
public class NumberUtility {
public static BigDecimal toBigDecimal(final String str) {
try {
return (StringUtils.isEmpty(str) ? null : new BigDecimal(str));
} catch (NumberFormatException nfe) {
return null;
}
}
public static BigDecimal toBigDecimal(final String str, boolean zeroDefault) {
try {
return (StringUtils.isEmpty(str) ? new BigDecimal("0.00") : new BigDecimal(str));
} catch (NumberFormatException nfe) {
return new BigDecimal("0.00");
}
}
public static Integer toInteger(final String str) {
return (StringUtils.isEmpty(str) ? 0 : Integer.valueOf(str));
}
public static String formatSliceNumber(final long number) {
NumberFormat formatter = new DecimalFormat("00000");
return formatter.format(number);
}
public static String formatZipCode(final Number zipCode) {
DecimalFormat df = new DecimalFormat("000000000");
df.setParseIntegerOnly(true);
/** Format a number as Zip +4, code obtain from POI authored by:James May. */
String result = df.format(zipCode);
if (result.startsWith("0000"))
{
return result.substring(4, 9);
} else {
return result.substring(0, 9);
}
}
public static String formatLast4ssn(final Number last4ssn) {
DecimalFormat df = new DecimalFormat("0000");
df.setParseIntegerOnly(true);
return df.format(last4ssn);
}
public static String formatRowCount(final long number) {
NumberFormat formatter = new DecimalFormat("###,###,###,###,##0");
return formatter.format(number);
}
public static String formatAmount(final BigDecimal number) {
NumberFormat formatter = new DecimalFormat(".00");
return formatter.format(number);
}
}