protected Object getCmdParamValue()

in empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java [58:98]


    protected Object getCmdParamValue(Object value)
    {
        // check null
        if (value == null)
            return null;
        // check for enum
        if (value instanceof Enum<?>)
        {   // convert enum
            return ObjectUtils.getEnumValue((Enum<?>)value, type.isNumeric());
        }
        // check type
        switch (type)
        {
            case BLOB:
                if (value instanceof DBBlobData)
                    return value;
                if (value instanceof byte[])
                    return new DBBlobData((byte[])value);
                // create a blob data
                return new DBBlobData(value.toString());
            case CLOB:
                if (value instanceof DBClobData)
                    return value;
                // create a clob data
                return new DBClobData(value.toString());
            case BOOL:
            	return ObjectUtils.getBoolean(value);
            case INTEGER:
                return (value instanceof Number) ? value : ObjectUtils.toLong(value);
            case FLOAT:
                return (value instanceof Number) ? value : ObjectUtils.toDouble(value);
            case DECIMAL:
                return (value instanceof Number) ? value : ObjectUtils.toDecimal(value);
            case CHAR:
            case VARCHAR:
                return (value instanceof String) ? value : value.toString();
            default:
                // use as is
                return value;
        }
    }