package items; import java.io.File; import java.nio.file.Path; import java.util.Collection; /** * Represents an assignment of a specific category handed in via * an online handin tool. */ public abstract class HandinItem extends Assignment { /** the handin submission associated with this item */ Submission submission; /** a history of this handin item's past submissions */ Collection history; /** the handin directory associated with this item */ Path directory; /** * Updates the current submission, adding the previous * submission to the history. * @param newFile the newly submitted file
     post:
       // the File contained in this Item's Submission is updated
       this.submission.file.equals(newFile);
    
*/ public abstract void updateSubmission(File newFile); /** * Searches this item's submission history for the given query, * returning the first item matched. * @param expression the expression to search for * @return the first submission found matching the given expression
     pre:
       // this File's history must not be empty
       this.history.size() > 0;
    
*/ public abstract Submission searchHistory(Object expression); }