## Uses of Class
net.sf.cpsolver.coursett.model.Lecture

- Packages that use Lecture
  Package | Description
  --- | ---
  net.sf.cpsolver.coursett | University Course Timetabling.
  net.sf.cpsolver.coursett.constraint | University Course Timetabling: Constraints.
  net.sf.cpsolver.coursett.criteria | University Course Timetabling: Criteria.
  net.sf.cpsolver.coursett.criteria.additional | University Course Timetabling: Additional (Experimental) Criteria.
  net.sf.cpsolver.coursett.criteria.placement | University Course Timetabling: Placement Selection Criteria.
  net.sf.cpsolver.coursett.custom | University Course Timetabling: Various customizations.
  net.sf.cpsolver.coursett.heuristics | University Course Timetabling: Heuristics.
  net.sf.cpsolver.coursett.model | University Course Timetabling: Model.
  net.sf.cpsolver.coursett.neighbourhoods | University Course Timetabling: Various Neighbourhoods.

- - ### Uses of Lecture in net.sf.cpsolver.coursett

    Methods in net.sf.cpsolver.coursett that return types with arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `protected Solution<Lecture,Placement>` | TimetableSaver.`getSolution()` Solution to be saved
    `Solver<Lecture,Placement>` | TimetableSaver.`getSolver()` Solver
    `Solver<Lecture,Placement>` | TimetableXMLLoader.`getSolver()`

    Method parameters in net.sf.cpsolver.coursett with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | Test.`bestCleared(Solution<Lecture,Placement> solution)`
    `void` | Test.`bestRestored(Solution<Lecture,Placement> solution)`
    `void` | Test.`bestSaved(Solution<Lecture,Placement> solution)`
    `void` | Test.`getInfo(Solution<Lecture,Placement> solution, Map<String,String> info)`
    `void` | Test.`getInfo(Solution<Lecture,Placement> solution, Map<String,String> info, Collection<Lecture> variables)`
    `void` | Test.`getInfo(Solution<Lecture,Placement> solution, Map<String,String> info, Collection<Lecture> variables)`
    `void` | Test.`init(Solver<Lecture,Placement> solver)` Solver initialization
    `void` | TimetableXMLLoader.`load(Solution<Lecture,Placement> currentSolution)`
    `void` | Test.`notify(Solution<Lecture,Placement> solution)` Add a line into the output CSV file when a enw best solution is found.
    `static void` | Test.`printSomeStuff(Solution<Lecture,Placement> solution)` Create info.txt with some more information about the problem
    `static void` | Test.`saveOutputCSV(Solution<Lecture,Placement> s, File file)`
    `void` | TimetableXMLLoader.`setSolver(Solver<Lecture,Placement> solver)`
    `void` | Test.`solutionUpdated(Solution<Lecture,Placement> solution)`

    Constructor parameters in net.sf.cpsolver.coursett with type arguments of type Lecture
    Constructor and Description
    `TimetableSaver(Solver<Lecture,Placement> solver)` Constructor
    `TimetableXMLSaver(Solver<Lecture,Placement> solver)`

  - ### Uses of Lecture in net.sf.cpsolver.coursett.constraint

    Methods in net.sf.cpsolver.coursett.constraint that return Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Lecture` | ClassLimitConstraint.`getParentLecture()`

    Methods in net.sf.cpsolver.coursett.constraint that return types with arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `protected Criterion<Lecture,Placement>` | DepartmentSpreadConstraint.`getCriterion()`
    `protected Criterion<Lecture,Placement>` | SpreadConstraint.`getCriterion()`

    Methods in net.sf.cpsolver.coursett.constraint with parameters of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | ClassLimitConstraint.`addParentAdepts(Collection<Placement> adepts, Lecture parent, Placement value, Set<Placement> conflicts)`
    `void` | GroupConstraint.`addVariable(Lecture lecture)`
    `void` | IgnoreStudentConflictsConstraint.`addVariable(Lecture variable)`
    `void` | JenrlConstraint.`addVariable(Lecture variable)`
    `void` | SpreadConstraint.`addVariable(Lecture lecture)`
    `boolean` | InstructorConstraint.`isAvailable(Lecture lecture, Placement placement)`
    `boolean` | InstructorConstraint.`isAvailable(Lecture lecture, TimeLocation time)`
    `boolean` | RoomConstraint.`isAvailable(Lecture lecture, TimeLocation time, Long scheduler)`
    `boolean` | GroupConstraint.`isChildrenNotOverlap(Lecture lec1, Placement plc1, Lecture lec2, Placement plc2)`
    `long` | JenrlConstraint.`jenrl(Lecture variable, Placement value)` Number of joined enrollments if the given value is assigned to the given variable
    `void` | GroupConstraint.`removeVariable(Lecture lecture)`

    Method parameters in net.sf.cpsolver.coursett.constraint with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | ClassLimitConstraint.`computeAdepts(Collection<Placement> adepts, List<Lecture> variables, Placement value, Set<Placement> conflicts)`
    `List<FlexibleConstraint.Block>` | MaxBlockFlexibleConstraint.`getBlocks(int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)`
    `List<FlexibleConstraint.Block>` | MaxBreaksFlexibleConstraint.`getBlocks(int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)`
    `List<FlexibleConstraint.Block>` | BreakFlexibleConstraint.`getBreakBlocks(int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)` Creates a list of consecutive blocks with back-to-back classes.
    `double` | FlexibleConstraint.`getCurrentPreference(Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)` Return the current preference of the flexible constraint, considering conflicts and new assignments.
    `double` | BreakFlexibleConstraint.`getNrViolations(Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `abstract double` | FlexibleConstraint.`getNrViolations(Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | MaxBlockFlexibleConstraint.`getNrViolations(Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | MaxBreaksFlexibleConstraint.`getNrViolations(Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `protected Set<Placement>` | FlexibleConstraint.`getRelevantPlacements(int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)` Returns placements of variables assigned to this constraint with assignment which satisfy following conditions: They must be taught in the day included in dayCode.
    `void` | GroupConstraint.`setModel(Model<Lecture,Placement> model)`

    Constructors in net.sf.cpsolver.coursett.constraint with parameters of type Lecture
    Constructor and Description
    `ClassLimitConstraint(Lecture parent, String name)`

  - ### Uses of Lecture in net.sf.cpsolver.coursett.criteria

    Methods in net.sf.cpsolver.coursett.criteria that return types with arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `PerturbationsCounter<Lecture,Placement>` | Perturbations.`getPerturbationsCounter()`

    Methods in net.sf.cpsolver.coursett.criteria with parameters of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | StudentConflict.`applicable(Lecture l1, Lecture l2)`
    `static boolean` | StudentConflict.`committed(Lecture l1, Lecture l2)`
    `static boolean` | StudentConflict.`hard(Lecture l1, Lecture l2)`
    `static boolean` | StudentConflict.`ignore(Lecture l1, Lecture l2)`
    `boolean` | StudentCommittedConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentDistanceConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentHardConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentOverlapConflict.`isApplicable(Lecture l1, Lecture l2)`

    Method parameters in net.sf.cpsolver.coursett.criteria with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `double[]` | BackToBackInstructorPreferences.`getBounds(Collection<Lecture> variables)`
    `double[]` | BrokenTimePatterns.`getBounds(Collection<Lecture> variables)`
    `double[]` | DistributionPreferences.`getBounds(Collection<Lecture> variables)`
    `double[]` | Perturbations.`getBounds(Collection<Lecture> variables)`
    `double[]` | RoomPreferences.`getBounds(Collection<Lecture> variables)`
    `double[]` | RoomViolations.`getBounds(Collection<Lecture> variables)`
    `double[]` | SameSubpartBalancingPenalty.`getBounds(Collection<Lecture> variables)`
    `double[]` | StudentCommittedConflict.`getBounds(Collection<Lecture> variables)`
    `double[]` | StudentConflict.`getBounds(Collection<Lecture> variables)`
    `double[]` | TimePreferences.`getBounds(Collection<Lecture> variables)`
    `double[]` | TooBigRooms.`getBounds(Collection<Lecture> variables)`
    `void` | FlexibleConstraintCriterion.`getInfo(Map<String,String> info, Collection<Lecture> variables)`
    `double` | BackToBackInstructorPreferences.`getValue(Collection<Lecture> variables)`
    `double` | BrokenTimePatterns.`getValue(Collection<Lecture> variables)`
    `double` | DepartmentBalancingPenalty.`getValue(Collection<Lecture> variables)`
    `double` | DistributionPreferences.`getValue(Collection<Lecture> variables)`
    `double` | FlexibleConstraintCriterion.`getValue(Collection<Lecture> variables)`
    `double` | Perturbations.`getValue(Collection<Lecture> variables)`
    `double` | SameSubpartBalancingPenalty.`getValue(Collection<Lecture> variables)`
    `double` | StudentCommittedConflict.`getValue(Collection<Lecture> variables)`
    `double` | StudentConflict.`getValue(Collection<Lecture> variables)`
    `boolean` | FlexibleConstraintCriterion.`init(Solver<Lecture,Placement> solver)`
    `boolean` | Perturbations.`init(Solver<Lecture,Placement> solver)`
    `boolean` | StudentConflict.`init(Solver<Lecture,Placement> solver)`
    `boolean` | TimetablingCriterion.`init(Solver<Lecture,Placement> solver)`

  - ### Uses of Lecture in net.sf.cpsolver.coursett.criteria.additional

    Methods in net.sf.cpsolver.coursett.criteria.additional with parameters of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | IgnoredCommittedStudentConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | IgnoredStudentConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | ImportantStudentHardConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | InstructorStudentHardConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | QuadraticStudentConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | QuadraticStudentHardConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentLuchBreak.`isApplicable(Lecture l1, Lecture l2)`
    `static boolean` | InstructorStudentHardConflict.`oneInstructorOtherHard(Lecture l1, Lecture l2)` One of the lectures is hard, there is a joint enrollment constraint between them, and there is at least one student that is instructor for one lecture and the other lecture is singleton.

    Method parameters in net.sf.cpsolver.coursett.criteria.additional with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `double[]` | IgnoredCommittedStudentConflict.`getBounds(Collection<Lecture> variables)`
    `void` | IgnoredStudentConflict.`getInfo(Map<String,String> info, Collection<Lecture> variables)`
    `void` | ImportantStudentConflict.`getInfo(Map<String,String> info, Collection<Lecture> variables)`
    `void` | ImportantStudentHardConflict.`getInfo(Map<String,String> info, Collection<Lecture> variables)`
    `void` | InstructorLunchBreak.`getInfo(Map<String,String> info, Collection<Lecture> variables)`
    `void` | InstructorStudentConflict.`getInfo(Map<String,String> info, Collection<Lecture> variables)`
    `void` | InstructorStudentHardConflict.`getInfo(Map<String,String> info, Collection<Lecture> variables)`
    `void` | StudentLuchBreak.`getInfo(Map<String,String> info, Collection<Lecture> variables)`
    `double` | IgnoredCommittedStudentConflict.`getValue(Collection<Lecture> variables)`
    `double` | InstructorLunchBreak.`getValue(Collection<Lecture> variables)`
    `boolean` | InstructorLunchBreak.`init(Solver<Lecture,Placement> solver)`
    `boolean` | RoomSizePenalty.`init(Solver<Lecture,Placement> solver)`
    `boolean` | StudentLuchBreak.`init(Solver<Lecture,Placement> solver)`

  - ### Uses of Lecture in net.sf.cpsolver.coursett.criteria.placement

    Fields in net.sf.cpsolver.coursett.criteria.placement with type parameters of type Lecture
    Modifier and Type | Field and Description
    --- | ---
    `protected ConflictStatistics<Lecture,Placement>` | WeightedHardConflicts.`iStat`

    Method parameters in net.sf.cpsolver.coursett.criteria.placement with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | WeightedHardConflicts.`bestCleared(Solution<Lecture,Placement> solution)`
    `void` | WeightedHardConflicts.`bestRestored(Solution<Lecture,Placement> solution)`
    `void` | WeightedHardConflicts.`bestSaved(Solution<Lecture,Placement> solution)`
    `void` | PlacementSelectionCriterion.`getInfo(Map<String,String> info, Collection<Lecture> variables)`
    `void` | WeightedHardConflicts.`getInfo(Solution<Lecture,Placement> solution, Map<String,String> info)`
    `void` | WeightedHardConflicts.`getInfo(Solution<Lecture,Placement> solution, Map<String,String> info, Collection<Lecture> variables)`
    `void` | WeightedHardConflicts.`getInfo(Solution<Lecture,Placement> solution, Map<String,String> info, Collection<Lecture> variables)`
    `boolean` | DeltaTimePreference.`init(Solver<Lecture,Placement> solver)`
    `boolean` | WeightedHardConflicts.`init(Solver<Lecture,Placement> solver)`
    `void` | WeightedHardConflicts.`solutionUpdated(Solution<Lecture,Placement> solution)`

  - ### Uses of Lecture in net.sf.cpsolver.coursett.custom

    Methods in net.sf.cpsolver.coursett.custom with parameters of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | DeterministicStudentSectioning.`resection(Lecture lecture, boolean recursive, boolean configAsWell)` No re-sectioning (final sectioning) during deterministic student sectioning.

    Method parameters in net.sf.cpsolver.coursett.custom with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `protected InitialSectioning.Group[]` | DeterministicStudentSectioning.`studentsToLectures(Long offeringId, Collection<Student> students, Collection<Lecture> lectures)`

  - ### Uses of Lecture in net.sf.cpsolver.coursett.heuristics

    Methods in net.sf.cpsolver.coursett.heuristics that return Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Lecture` | LectureSelection.`selectVariable(Solution<Lecture,Placement> solution)`

    Methods in net.sf.cpsolver.coursett.heuristics that return types with arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Neighbour<Lecture,Placement>` | NeighbourSelectionWithSuggestions.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | NeighbourSelectionWithSuggestions.`selectNeighbourWithSuggestions(Solution<Lecture,Placement> solution, Lecture lecture, int depth)`

    Methods in net.sf.cpsolver.coursett.heuristics with parameters of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Neighbour<Lecture,Placement>` | NeighbourSelectionWithSuggestions.`selectNeighbourWithSuggestions(Solution<Lecture,Placement> solution, Lecture lecture, int depth)`
    `Placement` | PlacementSelection.`selectValue(Solution<Lecture,Placement> solution, Lecture var)`

    Method parameters in net.sf.cpsolver.coursett.heuristics with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `int` | NeighbourSelectionWithSuggestions.SuggestionNeighbour.`compareTo(Solution<Lecture,Placement> solution)`
    `double` | TimetableComparator.`currentValue(Solution<Lecture,Placement> currentSolution)` Deprecated.
    `double` | TimetableComparator.`getBest(Solution<Lecture,Placement> currentSolution)` Deprecated.
    `void` | UniversalPerturbationsCounter.`getInfo(Map<String,String> info, TimetableModel model, List<Lecture> variables)`
    `void` | LectureSelection.`init(Solver<Lecture,Placement> solver)`
    `void` | NeighbourSelectionWithSuggestions.`init(Solver<Lecture,Placement> solver)`
    `void` | PlacementSelection.`init(Solver<Lecture,Placement> solver)`
    `Neighbour<Lecture,Placement>` | NeighbourSelectionWithSuggestions.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | NeighbourSelectionWithSuggestions.`selectNeighbourWithSuggestions(Solution<Lecture,Placement> solution, Lecture lecture, int depth)`
    `Placement` | PlacementSelection.`selectValue(Solution<Lecture,Placement> solution, Lecture var)`
    `Lecture` | LectureSelection.`selectVariable(Solution<Lecture,Placement> solution)`

    Constructor parameters in net.sf.cpsolver.coursett.heuristics with type arguments of type Lecture
    Constructor and Description
    `NeighbourSelectionWithSuggestions(Solver<Lecture,Placement> solver)`
    `SuggestionNeighbour(Map<Lecture,Placement> resolvedLectures)`

  - ### Uses of Lecture in net.sf.cpsolver.coursett.model

    Methods in net.sf.cpsolver.coursett.model that return Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Lecture` | FinalSectioning.Move.`firstLecture()`
    `Lecture` | Lecture.`getChild(Student student, Long subpartId)`
    `Lecture` | InitialSectioning.Group.`getLecture()`
    `Lecture` | Lecture.`getParent()`
    `Lecture` | FinalSectioning.Move.`secondLecture()`

    Methods in net.sf.cpsolver.coursett.model that return types with arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Map<Long,Set<Lecture>>` | Student.`canNotEnrollSections()`
    `List<Lecture>` | Lecture.`conflictLectures(Student student)` Lectures different from this one, where it is student conflict of the given student between this and the lecture
    `Set<Lecture>` | FinalSectioning.MoveBetweenCfgs.`firstLectures()`
    `List<Lecture>` | Lecture.`getChildren(Long subpartId)`
    `Map<Lecture,Long>` | Lecture.`getInitialStudentConflicts()` Table of student conflicts caused by the initial assignment of this lecture in format (another lecture, number)
    `Set<Lecture>` | Student.`getLectures()`
    `Map<Long,Set<Lecture>>` | Configuration.`getTopLectures()`
    `Set<Lecture>` | Configuration.`getTopLectures(Long subpartId)`
    `Set<Constraint<Lecture,Placement>>` | Lecture.`getWeakeningConstraints()`
    `List<Lecture>` | Lecture.`sameStudentsLectures()`
    `List<Lecture>` | Lecture.`sameSubpartLectures()` Set of lectures of the same class (only section is different)
    `Set<Lecture>` | FinalSectioning.MoveBetweenCfgs.`secondLectures()`

    Methods in net.sf.cpsolver.coursett.model with parameters of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | Student.`addCanNotEnroll(Lecture lecture)`
    `void` | Student.`addLecture(Lecture lecture)`
    `void` | Configuration.`addTopLecture(Lecture lecture)`
    `boolean` | Lecture.`areStudentConflictsHard(Lecture other)`
    `boolean` | Student.`canEnroll(Lecture lecture)`
    `boolean` | Lecture.`canShareRoom(Lecture other)`
    `boolean` | Student.`canUnenroll(Lecture lecture)`
    `int` | Lecture.`compareTo(Lecture o)`
    `FinalSectioning.Move` | FinalSectioning.`createMove(Lecture firstLecture, Student firstStudent, Lecture secondLecture, Student secondStudent)`
    `FinalSectioning.Move` | FinalSectioning.`createMove(Lecture firstLecture, Student firstStudent, Lecture secondLecture, Student secondStudent, FinalSectioning.Move parentMove)`
    `void` | FinalSectioning.`findAndPerformMoves(Lecture lecture, HashSet<Lecture> lecturesToRecompute)` Swap students between this and the same lectures (lectures which differ only in the section)
    `FinalSectioning.Move` | FinalSectioning.`findAwayMove(Lecture lecture)`
    `FinalSectioning.Move` | FinalSectioning.`findMove(Lecture lecture, Student student)`
    `protected String` | DefaultStudentSectioning.`getClassLabel(Lecture lecture)` Class label
    `Double` | Student.`getConflictingPriorty(Lecture l1, Lecture l2)`
    `double` | Student.`getJenrlWeight(Lecture l1, Lecture l2)`
    `Double` | Student.`getPriority(Lecture lecture)`
    `boolean` | Lecture.`isToIgnoreStudentConflictsWith(Lecture other)` Returns true if there is `IgnoreStudentConflictsConstraint` between the two lectures.
    `JenrlConstraint` | Lecture.`jenrlConstraint(Lecture another)` All JENRL constraints of this lecture
    `void` | Student.`removeLecture(Lecture lecture)`
    `void` | DefaultStudentSectioning.`resection(Lecture lecture, boolean recursive, boolean configAsWell)` Perform sectioning on the given lecture
    `void` | FinalSectioning.`resection(Lecture lecture, boolean recursive, boolean configAsWell)` Perform sectioning on the given lecture
    `void` | StudentSectioning.`resection(Lecture lecture, boolean recursive, boolean configAsWell)` Perform sectioning on the given lecture
    `Set<Student>` | Lecture.`sameStudents(Lecture lecture)` List of students enrolled in this class as well as in the given class
    `void` | Lecture.`setParent(Lecture parent)`
    `int` | FinalSectioning.`test(Student student, Lecture lecture)`
    `void` | OnFlySectioning.`variableAdded(Lecture variable)`
    `void` | OnFlySectioning.`variableRemoved(Lecture variable)`

    Method parameters in net.sf.cpsolver.coursett.model with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | Student.`addCanNotEnroll(Long offeringId, Collection<Lecture> lectures)`
    `void` | TimetableModel.`addConstraint(Constraint<Lecture,Placement> constraint)`
    `void` | Lecture.`addContstraint(Constraint<Lecture,Placement> constraint)`
    `void` | OnFlySectioning.`constraintAdded(Constraint<Lecture,Placement> constraint)`
    `void` | OnFlySectioning.`constraintRemoved(Constraint<Lecture,Placement> constraint)`
    `void` | FinalSectioning.`findAndPerformMoves(Configuration configuration, HashSet<Lecture> lecturesToRecompute)`
    `void` | FinalSectioning.`findAndPerformMoves(Lecture lecture, HashSet<Lecture> lecturesToRecompute)` Swap students between this and the same lectures (lectures which differ only in the section)
    `Map<String,String>` | TimetableModel.`getInfo(Collection<Lecture> variables)`
    `double` | TimetableModel.`getTotalValue(Collection<Lecture> variables)`
    `boolean` | OnFlySectioning.`init(Solver<Lecture,Placement> solver)` Initialization
    `protected void` | DefaultStudentSectioning.`initialSectioningLectures(Long offeringId, String courseName, Collection<Student> students, Collection<Lecture> lectures)` Enroll students into the given classes during the initial data load using `InitialSectioning`.
    `void` | TimetableModel.`removeConstraint(Constraint<Lecture,Placement> constraint)`
    `void` | Lecture.`removeContstraint(Constraint<Lecture,Placement> constraint)`
    `void` | Lecture.`setSameSubpartLectures(List<Lecture> sameSubpartLectures)` Set of lectures of the same class (only section is different)
    `protected InitialSectioning.Group[]` | DefaultStudentSectioning.`studentsToLectures(Long offeringId, Collection<Student> students, Collection<Lecture> lectures)` Section students into lectures.

    Constructors in net.sf.cpsolver.coursett.model with parameters of type Lecture
    Constructor and Description
    `Group(Lecture lecture)`
    `Placement(Lecture lecture, TimeLocation timeLocation, List<RoomLocation> roomLocations)`
    `Placement(Lecture lecture, TimeLocation timeLocation, RoomLocation roomLocation)` Constructor

  - ### Uses of Lecture in net.sf.cpsolver.coursett.neighbourhoods

    Methods in net.sf.cpsolver.coursett.neighbourhoods that return types with arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Neighbour<Lecture,Placement>` | RoomChange.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | RoomSwap.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | TimeChange.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | TimeSwap.`selectNeighbour(Solution<Lecture,Placement> solution)`

    Method parameters in net.sf.cpsolver.coursett.neighbourhoods with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | RoomSwap.`init(Solver<Lecture,Placement> solver)`
    `void` | TimeSwap.`init(Solver<Lecture,Placement> solver)`
    `Double` | RoomSwap.`resolve(Solution<Lecture,Placement> solution, double total, long startTime, Map<Lecture,Placement> assignments, List<Placement> conflicts, int index)`
    `Double` | RoomSwap.`resolve(Solution<Lecture,Placement> solution, double total, long startTime, Map<Lecture,Placement> assignments, List<Placement> conflicts, int index)`
    `Double` | TimeSwap.`resolve(Solution<Lecture,Placement> solution, double total, long startTime, Map<Lecture,Placement> assignments, List<Placement> conflicts, int index)`
    `Double` | TimeSwap.`resolve(Solution<Lecture,Placement> solution, double total, long startTime, Map<Lecture,Placement> assignments, List<Placement> conflicts, int index)`
    `Neighbour<Lecture,Placement>` | RoomChange.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | RoomSwap.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | TimeChange.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | TimeSwap.`selectNeighbour(Solution<Lecture,Placement> solution)`