public static Object convert()

in openjpa-kernel/src/main/java/org/apache/openjpa/meta/JavaTypes.java [321:434]


    public static Object convert(Object val, int typeCode) {
        if (val == null)
            return null;

        switch (typeCode) {
            case BIGDECIMAL:
                if (val instanceof BigDecimal)
                    return val;
                if (val instanceof Number)
                    return new BigDecimal(((Number) val).doubleValue());
                if (val instanceof String)
                    return new BigDecimal(val.toString());
                return val;
            case BIGINTEGER:
                if (val instanceof BigInteger)
                    return val;
                if (val instanceof Number || val instanceof String)
                    return new BigInteger(val.toString());
                return val;
            case BOOLEAN:
            case BOOLEAN_OBJ:
                if (val instanceof String)
                    return Boolean.valueOf(val.toString());
                return val;
            case BYTE_OBJ:
                if (val instanceof Byte)
                    return val;
                if (val instanceof Number)
                    return ((Number) val).byteValue();
                // no break
            case BYTE:
                if (val instanceof String)
                    return Byte.valueOf((String)val);
                return val;
            case CHAR:
            case CHAR_OBJ:
                if (val instanceof Character)
                    return val;
                if (val instanceof String)
                    return val.toString().charAt(0);
                if (val instanceof Number)
                    return (char) ((Number) val).intValue();
                return val;
            case DATE:
                if (val instanceof String)
                    return new Date(val.toString());
                return val;
            case DOUBLE_OBJ:
                if (val instanceof Double)
                    return val;
                if (val instanceof Number)
                    return ((Number) val).doubleValue();
                // no break
            case DOUBLE:
                if (val instanceof String)
                    return Double.valueOf(val.toString());
                return val;
            case FLOAT_OBJ:
                if (val instanceof Float)
                    return val;
                if (val instanceof Number)
                    return ((Number) val).floatValue();
                // no break
            case FLOAT:
                if (val instanceof String)
                    return Float.valueOf(val.toString());
                return val;
            case INT_OBJ:
                if (val instanceof Integer)
                    return val;
                if (val instanceof Number)
                    return ((Number) val).intValue();
                // no break
            case INT:
                if (val instanceof String)
                    return Integer.valueOf(val.toString());
                return val;
            case LONG_OBJ:
                if (val instanceof Long)
                    return val;
                if (val instanceof Number)
                    return ((Number) val).longValue();
                // no break
            case LONG:
                if (val instanceof String)
                    return Long.valueOf(val.toString());
                return val;
            case NUMBER:
                if (val instanceof Number)
                    return val;
                if (val instanceof String)
                    return new BigDecimal(val.toString());
                return val;
            case SHORT_OBJ:
                if (val instanceof Short)
                    return val;
                if (val instanceof Number)
                    return ((Number) val).shortValue();
                // no break
            case SHORT:
                if (val instanceof String)
                    return Short.valueOf(val.toString());
                return val;
            case UUID_OBJ:
                if (val instanceof String) {
                    return UUID.fromString((String) val);
                }
                return (UUID) val;
            case STRING:
                return val.toString();
            default:
                return val;
        }
    }