package schedule; import java.util.Collection; import admin.CourseDB; import admin.Course; /** * This class defines a Collection of courses the admin populates. * This Collection of courses may not be scheduled at the same time. * The score tells how "well" the generated schedule met this constraint to give an idea * of how good the generated schedule turned out. * <p> * This object is derived from Section 2.4.1.2 of the Functional Requirements. */ abstract class AdminCourseOverlap { public Collection<Course> courses; public CourseDB CourseDataBase; public int overlapScore; /** * This method is called each time an admin adds a course to a Collection of courses * they would not like to be scheduled with overlap. */ /*@ requires // // The input course is not null and it is a valid course // (toAdd != null) && (CourseDataBase.contains(toAdd) == true); ensures // // The course added is valid and it is added to the collection // (courses.contains(toAdd) == true); @*/ public abstract void addCourse(Course toAdd); /** * This method is called when the admin wants to save the Collection of courses. */ /*@ requires // // The input course is not null and it is a valid course // (courses != null) && (foreach(Item m : courses) CourseDataBase.contains(m) == true); ensures // // The course list is saved // (courses != null); @*/ public abstract void saveCourseList(); }