in dekaf-jdbc/src/utils/Numbers.java [42:61]
public static <N extends Number> N convertNumber(final Class<N> numberClass, final Number number) {
if (number == null) return null;
if (numberClass.isAssignableFrom(number.getClass())) return (N) number;
if (numberClass == Byte.class || numberClass == byte.class) return (N) Byte.valueOf(number.byteValue());
if (numberClass == Short.class || numberClass == short.class) return (N) Short.valueOf(number.shortValue());
if (numberClass == Integer.class || numberClass == int.class) return (N) Integer.valueOf(number.intValue());
if (numberClass == Long.class || numberClass == long.class) return (N) Long.valueOf(number.longValue());
if (numberClass == Float.class || numberClass == float.class) return (N) Float.valueOf(number.floatValue());
if (numberClass == Double.class || numberClass == double.class) return (N) Double.valueOf(number.doubleValue());
if (numberClass == BigInteger.class) return (N) new BigInteger(number.toString());
if (numberClass == BigDecimal.class) return (N) new BigDecimal(number.toString());
String message =
String.format("Unknown how to convert value (%s) of type %s to %s.",
number.toString(),
number.getClass().getCanonicalName(),
numberClass.getCanonicalName());
throw new IllegalArgumentException(message);
}