public static String calculateFullJavaType(Column column) {
        String answer;
        String javaType = fullTypeMap.get(column.getJdbcType());

        if (javaType == null) {
            switch (column.getJdbcType()) {
                case Types.DECIMAL:
                case Types.NUMERIC:
                    if (column.getDecimalDigits() > 0 || column.getSize() > 18 || forceBigDecimals) {
                        answer = "java.math.BigDecimal";
                    } else if (column.getSize() > 9) {
                        answer = "java.lang.Long";
                    } else if (column.getSize() > 4) {
                        answer = "java.lang.Integer";
                    } else {
                        answer = "java.lang.Short";
                    }
                    break;

                default:
                    answer = null;
                    break;
            }
        } else {
            answer = javaType;
        }

        return answer;
    }