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;
}
}