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();
}
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 Long)
rec.setValue( colMap.getColumnName(),
criteria.getLong(key) );
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 Hashtable )
rec.setValue( colMap.getColumnName(),
hashtableToByteArray( (Hashtable)obj ) );
else if ( obj instanceof byte[])
rec.setValue( colMap.getColumnName(),
(byte[])obj);
else if ( obj instanceof Boolean)
rec.setValue( colMap.getColumnName(),
criteria.getBoolean(key) ? 1 : 0);
shouldSave = true;
}
}
if ( shouldSave )