final DefaultDataAttributeContext dataAttributeContext = new DefaultDataAttributeContext();
for (int i = 0; i < extraFields.length; i++)
{
final String extraField = extraFields[i];
fields.add(new DataSchemaFieldDefinition(extraField, new EmptyDataAttributes(), dataAttributeContext));
}
for (int i = columnNames.length - 1; i >= 0; i -= 1)
{
final String columnName = columnNames[i];
final DataAttributes attributes = dataSchema.getAttributes(columnName);
if (attributes == null)
{
throw new IllegalStateException("No data-schema for field with name '" + columnName + '\'');
}
if (DataSchemaUtility.isFiltered(attributes, dataAttributeContext))
{
continue;
}
fields.add(new DataSchemaFieldDefinition(columnName, attributes, dataAttributeContext));
}
return fields.toArray(new FieldDefinition[fields.size()]);
}