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