protected Object getCmdParamValue()

in empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java [72:115]


    protected Object getCmdParamValue(Object value)
    {
        if (value instanceof DBExpr)
            throw new InvalidOperationException("DBCmdParam does not accept DBExpr");
        if (value!=null)
            value = ObjectUtils.convertValue(type, value);
        if (value==null)
            return value;
        // If still an Enum, convert now (Lazy conversion)
        if (value instanceof Enum<?>)
            value = ObjectUtils.getEnumValue((Enum<?>)value, type.isNumeric());
        // Check CLOB and BLOB
        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 DATE:
                if (DBDatabase.SYSDATE.equals(value))
                    value = DateUtils.getDateNow();
                return value;
            case DATETIME:
                if (DBDatabase.SYSDATE.equals(value))
                    value = DateUtils.getTimeNow();
                return value;
            case TIMESTAMP:
            case UNKNOWN:
                if (DBDatabase.SYSDATE.equals(value))
                    value = DateUtils.getTimestamp();
                return value;
            default:
                // the value
                return value;
        }
    }