{
ArrayList<Attribute> result = new ArrayList<Attribute>();
for (int i=0; i<metadata.getColumnCount(); i++)
{
Attribute attribute;
ColumnMetadata column = metadata.getColumnMetadata(i);
if (nominalValues != null)
{
List<Object> values = nominalValues.get(i);
if (values != null)
{
List<String> nomVal = new ArrayList<String>();
for (Object value : values)
{
// nominal values must be strings
nomVal.add(value.toString());
}
attribute = new Attribute(column.getName(), nomVal);
}
else
{
attribute = createAttributeForType(column);
}