package users; import course.*; /** * A User utilizes the Test Tool. Three types of users exist: Instructor, Grader, and Student. Each user receives a different * graphical interface and permissions within the program. This relates to Section 2.1 in the requirements documentation. */ public abstract class User { /** * The given name of a User. */ private String realName; /** * A unique identifier for a User */ UserID userID; /** * A log of all recent activities that this User has performed. */ private UserLog userLog; /** * Default constructor for a User object. */ public User() { } /** * Sets the parameters for a user object * @param id The user id of a user * @param realName The name of the user pre: // The id does not exist in the User Database (!database.contains(id)) */ public User(UserID id, String realName) { } /** * Returns the user log of this user * @return the user log of this user */ public abstract UserLog getUserLog(UserID id); /** * Generates a TestAttempt object for this user and if this is a student, * adds it to their grades. * @param t The test the user is taking */ public abstract void takeTest(Test t); }