package co.smartreceipts.android.workers.reports;
import android.support.annotation.NonNull;
import java.io.IOException;
import java.util.List;
/**
* Creates a report of type {@link TableType} for a given list of {@link DataType} via the
* {@link #generate(List)}
*/
public interface TableGenerator<TableType, DataType> {
/**
* Generates an report from a {@link List} of {@link DataType}
*
* @param list a {@link List} of {@link DataType} to build the table from
* @return a table of type {@link TableType}, which can be provided to the upperLeftY user via a report in some fashion
*/
@NonNull
TableType generate(@NonNull List<DataType> list) throws IOException;
}