in src/main/java/org/apache/ddlutils/platform/SqlBuilder.java [1114:1182]
protected String getValueAsString(Column column, Object value)
{
if (value == null)
{
return "NULL";
}
StringBuffer result = new StringBuffer();
// TODO: Handle binary types (BINARY, VARBINARY, LONGVARBINARY, BLOB)
switch (column.getTypeCode())
{
case Types.DATE:
result.append(getPlatformInfo().getValueQuoteToken());
if (!(value instanceof String) && (getValueDateFormat() != null))
{
// TODO: Can the format method handle java.sql.Date properly ?
result.append(getValueDateFormat().format(value));
}
else
{
result.append(value.toString());
}
result.append(getPlatformInfo().getValueQuoteToken());
break;
case Types.TIME:
result.append(getPlatformInfo().getValueQuoteToken());
if (!(value instanceof String) && (getValueTimeFormat() != null))
{
// TODO: Can the format method handle java.sql.Date properly ?
result.append(getValueTimeFormat().format(value));
}
else
{
result.append(value.toString());
}
result.append(getPlatformInfo().getValueQuoteToken());
break;
case Types.TIMESTAMP:
result.append(getPlatformInfo().getValueQuoteToken());
// TODO: SimpleDateFormat does not support nano seconds so we would
// need a custom date formatter for timestamps
result.append(value.toString());
result.append(getPlatformInfo().getValueQuoteToken());
break;
case Types.REAL:
case Types.NUMERIC:
case Types.FLOAT:
case Types.DOUBLE:
case Types.DECIMAL:
result.append(getPlatformInfo().getValueQuoteToken());
if (!(value instanceof String) && (getValueNumberFormat() != null))
{
result.append(getValueNumberFormat().format(value));
}
else
{
result.append(value.toString());
}
result.append(getPlatformInfo().getValueQuoteToken());
break;
default:
result.append(getPlatformInfo().getValueQuoteToken());
result.append(escapeStringValue(value.toString()));
result.append(getPlatformInfo().getValueQuoteToken());
break;
}
return result.toString();
}