## Uses of Class
org.cpsolver.studentsct.model.Course

- Packages that use Course
  Package | Description
  --- | ---
  org.cpsolver.studentsct | Student Sectioning Solver.
  org.cpsolver.studentsct.constraint | Student Sectioning: Constraints.
  org.cpsolver.studentsct.model | Student Sectioning: Model.
  org.cpsolver.studentsct.online | Online Student Sectioning Solver.
  org.cpsolver.studentsct.online.selection | Online Student Sectioning Solver: Selection Weights and Heuristics.
  org.cpsolver.studentsct.report | Student Sectioning: Various Reports.
  org.cpsolver.studentsct.reservation | Student Sectioning: Reservations.

- - ### Uses of Course in org.cpsolver.studentsct

    Methods in org.cpsolver.studentsct that return Course
    Modifier and Type | Method and Description
    --- | ---
    `protected Course` | StudentSectioningXMLLoader.`loadCourse(Element courseEl, Offering offering)` Load course

    Methods in org.cpsolver.studentsct with parameters of type Course
    Modifier and Type | Method and Description
    --- | ---
    `static double` | Test.`getLastLikeStudentWeight(Course course, int real, int lastLike)` Compute last-like student weight for the given course
    `protected void` | StudentSectioningXMLSaver.`saveCourse(Element courseEl, Course course)` Save given course

    Method parameters in org.cpsolver.studentsct with type arguments of type Course
    Modifier and Type | Method and Description
    --- | ---
    `CourseRequest` | StudentSectioningXMLLoader.`loadCourseRequest(Element requestEl, Student student, Map<Long,Offering> offeringTable, Map<Long,Course> courseTable)` Load course request
    `protected void` | StudentSectioningXMLLoader.`loadOfferings(Element offeringsEl, Map<Long,Offering> offeringTable, Map<Long,Course> courseTable, Map<Long,Placement> timetable)` Load offerings
    `protected Request` | StudentSectioningXMLLoader.`loadRequest(Element requestEl, Student student, Map<Long,Offering> offeringTable, Map<Long,Course> courseTable)` Load request
    `protected void` | StudentSectioningXMLLoader.`loadStudents(Element studentsEl, Map<Long,Offering> offeringTable, Map<Long,Course> courseTable, List<Enrollment> bestEnrollments, List<Enrollment> currentEnrollments)` Load students

  - ### Uses of Course in org.cpsolver.studentsct.constraint

    Methods in org.cpsolver.studentsct.constraint with parameters of type Course
    Modifier and Type | Method and Description
    --- | ---
    `static double` | CourseLimit.`getEnrollmentWeight(Assignment<Request,Enrollment> assignment, Course course, Request request)` Enrollment weight of a course if the given request is assigned.

  - ### Uses of Course in org.cpsolver.studentsct.model

    Methods in org.cpsolver.studentsct.model that return Course
    Modifier and Type | Method and Description
    --- | ---
    `Course` | Enrollment.`getCourse()` Course of the course request
    `Course` | RequestGroup.`getCourse()` Course associated with this group.
    `Course` | CourseRequest.`getCourse(long courseId)` Return course of the requested courses with the given id
    `Course` | Offering.`getCourse(Student student)` Return course, under which the given student enrolls into this offering.
    `Course` | Course.`getParent()` Parent course is set if the course depends on the parent.

    Methods in org.cpsolver.studentsct.model that return types with arguments of type Course
    Modifier and Type | Method and Description
    --- | ---
    `Set<Course>` | Course.`getChildren()` Courses that this course is a parent of.
    `List<Course>` | CourseRequest.`getCourses()` List of requested courses (in the correct order -- first is the requested course, second is the first alternative, etc.)
    `List<Course>` | Offering.`getCourses()` List of courses.

    Methods in org.cpsolver.studentsct.model with parameters of type Course
    Modifier and Type | Method and Description
    --- | ---
    `Enrollment` | CourseRequest.`createEnrollment(Course course, Set<? extends SctAssignment> sections, Reservation reservation)` Create enrollment for the given list of sections.
    `List<Reservation>` | CourseRequest.`getReservations(Course course)` Get reservations for this course requests
    `List<Restriction>` | CourseRequest.`getRestrictions(Course course)` Get restrictions for this course requests
    `TreeSet<Reservation>` | CourseRequest.`getSortedReservations(Assignment<Request,Enrollment> assignment, Course course)` Get reservations for this course requests ordered using `Reservation.compareTo(Assignment, Reservation)`
    `boolean` | CourseRequest.`hasCourse(Course course)`
    `boolean` | Request.`hasCourse(Course course)` Check if this request is `CourseRequest` and contains the given course.
    `boolean` | CourseRequest.`hasRestrictions(Course course)` Return true if there is a restriction for a course of this request
    `boolean` | CourseRequest.`isNotAllowed(Course course, Config config)` Return true when there are restrictions for a course of this course request and the given config does not meet any of them
    `boolean` | CourseRequest.`isNotAllowed(Course course, Section section)` Return true when there are restrictions for a course of this course request and the given section does not meet any of them
    `void` | Course.`setParent(Course parent)` Parent course is set if the course depends on the parent.

    Constructors in org.cpsolver.studentsct.model with parameters of type Course
    Constructor and Description
    `Enrollment(Request request, int priority, boolean noReservationPenalty, Course course, Config config, Set<? extends SctAssignment> assignments, Reservation reservation)` Constructor
    `Enrollment(Request request, int priority, Course course, Config config, Set<? extends SctAssignment> assignments, Reservation reservation)` Constructor
    `RequestGroup(long id, String name, Course course)` Creates request group.

    Constructor parameters in org.cpsolver.studentsct.model with type arguments of type Course
    Constructor and Description
    `CourseRequest(long id, int priority, boolean alternative, Student student, List<Course> courses, boolean waitlist, boolean critical, Long timeStamp)` Constructor
    `CourseRequest(long id, int priority, boolean alternative, Student student, List<Course> courses, boolean waitlist, Long timeStamp)` Constructor
    `CourseRequest(long id, int priority, boolean alternative, Student student, List<Course> courses, boolean waitlist, Request.RequestPriority importance, Long timeStamp)` Constructor

  - ### Uses of Course in org.cpsolver.studentsct.online

    Methods in org.cpsolver.studentsct.online that return Course
    Modifier and Type | Method and Description
    --- | ---
    `protected Course` | Test.`clone(Course course, long studentId, Student originalStudent, Map<Long,Section> classTable, StudentSectioningModel model)`

    Methods in org.cpsolver.studentsct.online with parameters of type Course
    Modifier and Type | Method and Description
    --- | ---
    `protected Course` | Test.`clone(Course course, long studentId, Student originalStudent, Map<Long,Section> classTable, StudentSectioningModel model)`
    `boolean` | OnlineReservation.`isApplicable(Student student, Course course)`

  - ### Uses of Course in org.cpsolver.studentsct.online.selection

    Methods in org.cpsolver.studentsct.online.selection with parameters of type Course
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | SuggestionsBranchAndBound.SuggestionFilter.`match(Course course, Section section)` Match the given section
    `boolean` | ResectioningWeights.LastSectionProvider.`sameLastName(Section current, Course course)` Check section name (external id)

  - ### Uses of Course in org.cpsolver.studentsct.report

    Methods in org.cpsolver.studentsct.report that return Course
    Modifier and Type | Method and Description
    --- | ---
    `Course` | AbstractStudentSectioningReport.RequestMatcher.`course()`
    `Course` | AbstractStudentSectioningReport.CourseMatcher.`course()`
    `Course` | CourseSection.`getCourse()` Course

    Methods in org.cpsolver.studentsct.report with parameters of type Course
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | AbstractStudentSectioningReport.`matches(Course c)`
    `boolean` | StudentSectioningReport.Filter.`matches(Course c)` Returns true if the given course matches the filter.

    Constructors in org.cpsolver.studentsct.report with parameters of type Course
    Constructor and Description
    `CourseMatcher(Course course)`
    `CourseSection(Course course, Section section)` Constructor

  - ### Uses of Course in org.cpsolver.studentsct.reservation

    Methods in org.cpsolver.studentsct.reservation that return Course
    Modifier and Type | Method and Description
    --- | ---
    `Course` | CourseReservation.`getCourse()` Course offering
    `Course` | CourseRestriction.`getCourse()` Course offering
    `Course` | LearningCommunityReservation.`getCourse()` Course offering

    Methods in org.cpsolver.studentsct.reservation with parameters of type Course
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | CourseReservation.`isApplicable(Student student, Course course)` Check the area, classifications and majors
    `boolean` | CourseRestriction.`isApplicable(Student student, Course course)` Check the area, classifications and majors
    `boolean` | CurriculumReservation.`isApplicable(Student student, Course course)` Check the area, classifications and majors
    `boolean` | CurriculumRestriction.`isApplicable(Student student, Course course)` Check the area, classifications and majors
    `boolean` | DummyReservation.`isApplicable(Student student, Course course)` Dummy reservation is not applicable to any students
    `boolean` | IndividualReservation.`isApplicable(Student student, Course course)` Reservation is applicable for all students in the reservation
    `boolean` | IndividualRestriction.`isApplicable(Student student, Course course)` Restriction is applicable for all students in the restriction
    `boolean` | LearningCommunityReservation.`isApplicable(Student student, Course course)` Check the student group and the course
    `abstract boolean` | Reservation.`isApplicable(Student student, Course course)` Returns true if the student is applicable for the reservation
    `abstract boolean` | Restriction.`isApplicable(Student student, Course course)` Returns true if the student is applicable for the restriction
    `boolean` | UniversalOverride.`isApplicable(Student student, Course course)` Check the area, classifications and majors

    Constructors in org.cpsolver.studentsct.reservation with parameters of type Course
    Constructor and Description
    `CourseReservation(long id, Course course)` Constructor
    `CourseRestriction(long id, Course course)` Constructor
    `LearningCommunityReservation(long id, double limit, Course course, Collection<Long> studentIds)` Constructor
    `LearningCommunityReservation(long id, double limit, Course course, Long... studentIds)` Constructor
    `StudentMatcher(Student student, Course course)`