in openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java [1664:1749]
public void setUnknown(PreparedStatement stmnt, int idx, Column col, Object val) throws SQLException {
Sized sized = null;
Calendard cald = null;
if (val instanceof Sized) {
sized = (Sized) val;
val = sized.value;
} else if (val instanceof Calendard) {
cald = (Calendard) val;
val = cald.value;
}
if (val == null)
setNull(stmnt, idx, (col == null) ? Types.OTHER : col.getType(),
col);
else if (val instanceof String)
setString(stmnt, idx, val.toString(), col);
else if (val instanceof Integer)
setInt(stmnt, idx, (Integer) val, col);
else if (val instanceof Boolean)
setBoolean(stmnt, idx, (Boolean) val, col);
else if (val instanceof Long)
setLong(stmnt, idx, (Long) val, col);
else if (val instanceof Float)
setFloat(stmnt, idx, (Float) val, col);
else if (val instanceof Double)
setDouble(stmnt, idx, (Double) val, col);
else if (val instanceof Byte)
setByte(stmnt, idx, (Byte) val, col);
else if (val instanceof Character)
setChar(stmnt, idx, (Character) val, col);
else if (val instanceof Short)
setShort(stmnt, idx, (Short) val, col);
else if (val instanceof Locale)
setLocale(stmnt, idx, (Locale) val, col);
else if (val instanceof BigDecimal)
setBigDecimal(stmnt, idx, (BigDecimal) val, col);
else if (val instanceof BigInteger)
setBigInteger(stmnt, idx, (BigInteger) val, col);
else if (val instanceof Array)
setArray(stmnt, idx, (Array) val, col);
else if (val instanceof Blob)
setBlob(stmnt, idx, (Blob) val, col);
else if (val instanceof byte[])
setBytes(stmnt, idx, (byte[]) val, col);
else if (val instanceof Clob)
setClob(stmnt, idx, (Clob) val, col);
else if (val instanceof Ref)
setRef(stmnt, idx, (Ref) val, col);
else if (val instanceof java.sql.Date)
setDate(stmnt, idx, (java.sql.Date) val,
(cald == null) ? null : cald.calendar, col);
else if (val instanceof Timestamp)
setTimestamp(stmnt, idx, (Timestamp) val,
(cald == null) ? null : cald.calendar, col);
else if (val instanceof Time)
setTime(stmnt, idx, (Time) val,
(cald == null) ? null : cald.calendar, col);
else if (val instanceof Date)
setDate(stmnt, idx, (Date) val, col);
else if (val instanceof Calendar)
setDate(stmnt, idx, ((Calendar) val).getTime(), col);
else if (val instanceof LocalDate) {
setLocalDate(stmnt, idx, (LocalDate) val, col);
}
else if (val instanceof LocalTime) {
setLocalTime(stmnt, idx, (LocalTime) val, col);
}
else if (val instanceof LocalDateTime) {
setLocalDateTime(stmnt, idx, (LocalDateTime) val, col);
}
else if (val instanceof OffsetTime) {
setOffsetTime(stmnt, idx, (OffsetTime) val, col);
}
else if (val instanceof OffsetDateTime) {
setOffsetDateTime(stmnt, idx, (OffsetDateTime) val, col);
}
else if (val instanceof Reader)
setCharacterStream(stmnt, idx, (Reader) val,
(sized == null) ? 0 : sized.size, col);
else if (val instanceof UUID && supportsUuidType)
setObject(stmnt, idx, (UUID) val, Types.OTHER, col);
else if (val instanceof UUID && !supportsUuidType)
setString(stmnt, idx, ((UUID) val).toString(), col);
else
throw new UserException(_loc.get("bad-param", val.getClass()));
}