Grading plug-ins should be able to specify plug-in-defined "tags" to be associated with each submitted file that they process.
Motivation: When generating reports, it is useful to know what the "nature" of a particular file is -- for example, whether it contains the implementation of a test case or not. The plug-in has much more power to make this determination than, say, grepping the filename for ".*Test" or some similar, fragile heuristic.
Possible implementation: For each file that a grading plug-in processes, it could write to the properties file an additional value (along with nloc, ncloc, etc) that contains a space-delimited sequence of tags that identify the file. These tags are then slurped up by the Grader and stored in a column in the appropriate SubmissionFileStats row for each file.
Also, a helper method could be added to SubmissionFileStats to search for keys and handle the delimiting properly. For example, boolean SubmissionFileStats.containsTag(String). This would also work in the null tag case without special conditional handling, but more importantly it is easily callable from OGNL expressions in a report template.