ColumnMap[] columnMaps = dbMap.getTable(tableName).getColumns();
boolean shouldSave = false;
for (int j = 0; j < columnMaps.length; j++)
{
ColumnMap colMap = columnMaps[j];
String key = new StringBuffer(colMap.getTableName())
.append('.')
.append(colMap.getColumnName())
.toString();
if (criteria.containsKey(key))
{
// A village Record.setValue( String, Object ) would
// be nice here.
Object obj = criteria.getValue(key);
if (obj instanceof SimpleKey)
{
obj = ((SimpleKey) obj).getValue();
}
try
{
if (obj == null)
{
rec.setValueNull(colMap.getColumnName());
}
else if (obj instanceof String)
{
rec.setValue(colMap.getColumnName(), (String) obj);
}
else if (obj instanceof Integer)
{
rec.setValue(colMap.getColumnName(),
criteria.getInt(key));
}
else if (obj instanceof BigDecimal)
{
rec.setValue(colMap.getColumnName(), (BigDecimal) obj);
}
else if (obj instanceof Boolean)
{
rec.setValue(colMap.getColumnName(),
criteria.getBoolean(key) ? 1 : 0);
}
else if (obj instanceof java.util.Date)
{
rec.setValue(colMap.getColumnName(),
(java.util.Date) obj);
}
else if (obj instanceof Float)
{
rec.setValue(colMap.getColumnName(),
criteria.getFloat(key));
}
else if (obj instanceof Double)
{
rec.setValue(colMap.getColumnName(),
criteria.getDouble(key));
}
else if (obj instanceof Byte)
{
rec.setValue(colMap.getColumnName(),
((Byte) obj).byteValue());
}
else if (obj instanceof Long)
{
rec.setValue(colMap.getColumnName(),
criteria.getLong(key));
}
else if (obj instanceof Short)
{
rec.setValue(colMap.getColumnName(),
((Short) obj).shortValue());
}
else if (obj instanceof Hashtable)
{
rec.setValue(colMap.getColumnName(),
hashtableToByteArray((Hashtable) obj));
}
else if (obj instanceof byte[])
{
rec.setValue(colMap.getColumnName(), (byte[]) obj);
}
}
catch (Exception e)
{
throwTorqueException(e);