package preferences;

import java.util.Collection;

import resources.course.Course;

/**
 * This class contains classes that cannot overlap.
 * 
 * @author rmcgover
 * 
 */
public abstract class CourseOverlap {
   Collection<Course> courses;
   
   /**
    * This method adds a course to the collection of courses that cannot
    * overlap.
    * 
    * @param course
    *           The course to be added.
    *           
    *
    * 
     pre:
        //
        // The course should not already exist.
        //
        !exists (Course other;
           courses.contains(other);
              course.equals(other));
    */
   abstract void addOverlapCourse(Course course);
   
   /**
    * This method deletes a course from the collection of courses that cannot
    * overlap.
    * 
    * @param course
    *           The course to be deleted.
    *           
    *
    * 
     pre:
        //
        // The course should already exist.
        //
        exists (Course other;
           courses.contains(other);
              course.equals(other));
    */
   abstract void deleteOverlapCourse(Course course);
}