## Uses of Class
org.cpsolver.exam.model.ExamPeriod

- Packages that use ExamPeriod
  Package | Description
  --- | ---
  org.cpsolver.exam.model | Examination Timetabling: Model.

- - ### Uses of ExamPeriod in org.cpsolver.exam.model

    Methods in org.cpsolver.exam.model that return ExamPeriod
    Modifier and Type | Method and Description
    --- | ---
    `ExamPeriod` | ExamModel.`addPeriod(Long id, String day, String time, int length, int penalty)` Add a period
    `ExamPeriod` | ExamPeriodPlacement.`getPeriod()` Examination period
    `ExamPeriod` | ExamPlacement.`getPeriod()` Assigned period
    `ExamPeriod` | ExamModel.`getPeriod(Long id)` Period of given unique id
    `ExamPeriod` | ExamPeriod.`next()` Next period
    `ExamPeriod` | ExamPeriod.`prev()` Previous period

    Methods in org.cpsolver.exam.model that return types with arguments of type ExamPeriod
    Modifier and Type | Method and Description
    --- | ---
    `List<ExamPeriod>` | ExamModel.`getPeriods()` List of periods, use `ExamModel.addPeriod(Long, String, String, int, int)` to add a period

    Methods in org.cpsolver.exam.model with parameters of type ExamPeriod
    Modifier and Type | Method and Description
    --- | ---
    `void` | Exam.`allowAllStudentConflicts(Assignment<Exam,ExamPlacement> assignment, ExamPeriod period)` Allow all direct student conflict for the given period (see `ExamStudent.canConflict(Exam, Exam)`).
    `int` | ExamPeriod.`compareTo(ExamPeriod p)`
    `void` | ExamRoom.`computeConflicts(Assignment<Exam,ExamPlacement> assignment, Exam exam, ExamPeriod period, Set<ExamPlacement> conflicts)` Compute conflicts if the given exam is assigned in this room and the given period
    `Set<Exam>` | ExamInstructor.`getExams(Assignment<Exam,ExamPlacement> assignment, ExamPeriod period)` Exam(s) enrolled by the instructor that are scheduled in the given period
    `Set<Exam>` | ExamStudent.`getExams(Assignment<Exam,ExamPlacement> assignment, ExamPeriod period)` Exam(s) enrolled by the student that are scheduled in the given period
    `Set<Exam>` | ExamInstructor.`getExamsADay(Assignment<Exam,ExamPlacement> assignment, ExamPeriod period)` Exam(s) enrolled by the instructor that are scheduled in the given day
    `Set<Exam>` | ExamStudent.`getExamsADay(Assignment<Exam,ExamPlacement> assignment, ExamPeriod period)` Exam(s) enrolled by the student that are scheduled in the given day
    `Map<ExamInstructor,Set<Exam>>` | ExamModel.`getInstructorsOfDay(Assignment<Exam,ExamPlacement> assignment, ExamPeriod period)`
    `Map<ExamInstructor,Set<Exam>>` | ExamModel.`getInstructorsOfPeriod(Assignment<Exam,ExamPlacement> assignment, ExamPeriod period)`
    `int` | ExamRoom.`getPenalty(ExamPeriod period)` Return room penalty for given period
    `int` | ExamRoomPlacement.`getPenalty(ExamPeriod period)` Penalty for assignment of an exam into this room `Exam.getRoomPlacements()` and the given examination period
    `ExamPeriodPlacement` | Exam.`getPeriodPlacement(ExamPeriod period)` Returns appropriate `ExamPeriodPlacement` for the given period, if it is available for this exam, null otherwise.
    `List<ExamPlacement>` | ExamRoom.`getPlacements(Assignment<Exam,ExamPlacement> assignment, ExamPeriod period)` Exams placed at the given period
    `HashSet<Exam>` | Exam.`getStudentConflicts(Assignment<Exam,ExamPlacement> assignment, ExamPeriod period)` List of exams that are assigned to the given period and share one or more students with this exam (that does not have direct conflicts allowed, see `ExamStudent.canConflict(Exam, Exam)`).
    `Map<ExamStudent,Set<Exam>>` | ExamModel.`getStudentsOfDay(Assignment<Exam,ExamPlacement> assignment, ExamPeriod period)`
    `Map<ExamStudent,Set<Exam>>` | ExamModel.`getStudentsOfPeriod(Assignment<Exam,ExamPlacement> assignment, ExamPeriod period)`
    `boolean` | ExamPeriod.`hasIntersection(Exam x1, Exam x2, ExamPeriod p)` Check if the first exam assigned to this period overlaps with the second exam assigned in the given period period
    `boolean` | ExamPeriod.`hasIntersection(ExamPeriod p)` Check if this period overlaps with the given period
    `boolean` | Exam.`hasStudentConflictWithPreAssigned(Assignment<Exam,ExamPlacement> assignment, ExamPeriod period)` True, if there is a student of this exam (that does not have direct conflicts allowed, see `ExamStudent.canConflict(Exam, Exam)`) that attends some other exam in the given period.
    `boolean` | ExamRoom.`inConflict(Assignment<Exam,ExamPlacement> assignment, Exam exam, ExamPeriod period)` Check for conflicts if the given exam is assigned in this room and the given period
    `boolean` | ExamInstructor.`isAvailable(ExamPeriod period)` True if the student is available (for examination timetabling) during the given period
    `boolean` | ExamRoom.`isAvailable(ExamPeriod period)` True if the room is available (for examination timetabling) during the given period
    `boolean` | ExamRoomPlacement.`isAvailable(ExamPeriod period)` Examination room availability
    `boolean` | ExamStudent.`isAvailable(ExamPeriod period)` True if the student is available (for examination timetabling) during the given period
    `boolean` | ExamDistributionConstraint.DistributionType.`isSatisfied(ExamPeriod first, ExamPeriod second)`
    `boolean` | ExamDistributionConstraint.PeriodCheck.`isSatisfied(ExamPeriod first, ExamPeriod second)`
    `void` | ExamRoom.`setAvailable(ExamPeriod period, boolean available)` Set whether the room is available (for examination timetabling) during the given period
    `void` | ExamPeriod.`setNext(ExamPeriod next)` Set next period (only to be used by `ExamModel.addPeriod(Long, String, String, int, int)`)
    `void` | ExamRoom.`setPenalty(ExamPeriod period, int penalty)` Set room penalty for given period
    `void` | ExamPeriod.`setPrev(ExamPeriod prev)` Set previous period (only to be used by `ExamModel.addPeriod(Long, String, String, int, int)`)

    Constructors in org.cpsolver.exam.model with parameters of type ExamPeriod
    Constructor and Description
    `ExamPeriodPlacement(ExamPeriod period, int penalty)` Constructor