# Hierarchy For All Packages

Package Hierarchies:

- org.cpsolver.coursett,
- org.cpsolver.coursett.constraint,
- org.cpsolver.coursett.criteria,
- org.cpsolver.coursett.criteria.additional,
- org.cpsolver.coursett.criteria.placement,
- org.cpsolver.coursett.custom,
- org.cpsolver.coursett.heuristics,
- org.cpsolver.coursett.model,
- org.cpsolver.coursett.neighbourhoods,
- org.cpsolver.coursett.preference,
- org.cpsolver.coursett.sectioning,
- org.cpsolver.exam,
- org.cpsolver.exam.criteria,
- org.cpsolver.exam.criteria.additional,
- org.cpsolver.exam.heuristics,
- org.cpsolver.exam.model,
- org.cpsolver.exam.neighbours,
- org.cpsolver.exam.reports,
- org.cpsolver.exam.split,
- org.cpsolver.ifs,
- org.cpsolver.ifs.algorithms,
- org.cpsolver.ifs.algorithms.neighbourhoods,
- org.cpsolver.ifs.assignment,
- org.cpsolver.ifs.assignment.context,
- org.cpsolver.ifs.constant,
- org.cpsolver.ifs.criteria,
- org.cpsolver.ifs.dbt,
- org.cpsolver.ifs.example.csp,
- org.cpsolver.ifs.example.jobshop,
- org.cpsolver.ifs.example.rpp,
- org.cpsolver.ifs.example.tt,
- org.cpsolver.ifs.extension,
- org.cpsolver.ifs.heuristics,
- org.cpsolver.ifs.model,
- org.cpsolver.ifs.perturbations,
- org.cpsolver.ifs.solution,
- org.cpsolver.ifs.solver,
- org.cpsolver.ifs.termination,
- org.cpsolver.ifs.util,
- org.cpsolver.instructor,
- org.cpsolver.instructor.constraints,
- org.cpsolver.instructor.criteria,
- org.cpsolver.instructor.model,
- org.cpsolver.instructor.test,
- org.cpsolver.studentsct,
- org.cpsolver.studentsct.constraint,
- org.cpsolver.studentsct.extension,
- org.cpsolver.studentsct.filter,
- org.cpsolver.studentsct.heuristics,
- org.cpsolver.studentsct.heuristics.selection,
- org.cpsolver.studentsct.heuristics.studentord,
- org.cpsolver.studentsct.check,
- org.cpsolver.studentsct.model,
- org.cpsolver.studentsct.online,
- org.cpsolver.studentsct.online.expectations,
- org.cpsolver.studentsct.online.selection,
- org.cpsolver.studentsct.report,
- org.cpsolver.studentsct.reservation,
- org.cpsolver.studentsct.weights

## Class Hierarchy

- java.lang.Object
  - org.cpsolver.ifs.assignment.context.AbstractClassWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>)
    - org.cpsolver.studentsct.model.Config (implements org.cpsolver.ifs.assignment.context.CanInheritContext<V,T,C>)
      - org.cpsolver.studentsct.online.OnlineConfig
    - org.cpsolver.studentsct.model.Course (implements org.cpsolver.ifs.assignment.context.CanInheritContext<V,T,C>)
    - org.cpsolver.instructor.model.Instructor (implements org.cpsolver.ifs.assignment.context.CanInheritContext<V,T,C>)
    - org.cpsolver.studentsct.model.RequestGroup (implements org.cpsolver.ifs.assignment.context.CanInheritContext<V,T,C>)
    - org.cpsolver.studentsct.reservation.Reservation (implements org.cpsolver.ifs.assignment.AssignmentComparable<X,V,T>, org.cpsolver.ifs.assignment.context.CanInheritContext<V,T,C>)
      - org.cpsolver.studentsct.reservation.CourseReservation
      - org.cpsolver.studentsct.reservation.CurriculumReservation
        - org.cpsolver.studentsct.reservation.CurriculumOverride
      - org.cpsolver.studentsct.reservation.DummyReservation
      - org.cpsolver.studentsct.reservation.IndividualReservation
        - org.cpsolver.studentsct.reservation.GroupReservation
          - org.cpsolver.studentsct.reservation.LearningCommunityReservation
        - org.cpsolver.studentsct.reservation.ReservationOverride
      - org.cpsolver.studentsct.online.OnlineReservation
    - org.cpsolver.studentsct.model.Section (implements org.cpsolver.ifs.assignment.AssignmentComparable<X,V,T>, org.cpsolver.ifs.assignment.context.CanInheritContext<V,T,C>, org.cpsolver.studentsct.model.SctAssignment)
      - org.cpsolver.studentsct.online.OnlineSection
  - org.cpsolver.ifs.criteria.AbstractCriterion<V,T> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.criteria.Criterion<V,T>, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>)
    - org.cpsolver.ifs.criteria.AssignedValue<V,T>
    - org.cpsolver.exam.criteria.ExamCriterion
      - org.cpsolver.exam.criteria.additional.DistanceToStronglyPreferredRoom
      - org.cpsolver.exam.criteria.DistributionPenalty
      - org.cpsolver.exam.criteria.additional.DistributionViolation
      - org.cpsolver.exam.criteria.ExamRotationPenalty
      - org.cpsolver.exam.split.ExamSplitter
      - org.cpsolver.exam.criteria.LargeExamsPenalty
      - org.cpsolver.exam.criteria.PeriodIndexPenalty
      - org.cpsolver.exam.criteria.PeriodPenalty
      - org.cpsolver.exam.criteria.PeriodSizePenalty
      - org.cpsolver.exam.criteria.additional.PeriodViolation
      - org.cpsolver.exam.criteria.PerturbationPenalty
        - org.cpsolver.exam.criteria.RoomPerturbationPenalty
      - org.cpsolver.exam.criteria.RoomPenalty
      - org.cpsolver.exam.criteria.RoomSizePenalty
      - org.cpsolver.exam.criteria.RoomSplitDistancePenalty
      - org.cpsolver.exam.criteria.RoomSplitPenalty
      - org.cpsolver.exam.criteria.additional.RoomViolation
      - org.cpsolver.exam.criteria.StudentBackToBackConflicts
        - org.cpsolver.exam.criteria.InstructorBackToBackConflicts
      - org.cpsolver.exam.criteria.StudentDirectConflicts
        - org.cpsolver.exam.criteria.InstructorDirectConflicts
          - org.cpsolver.exam.criteria.InstructorNotAvailableConflicts
        - org.cpsolver.exam.criteria.StudentNotAvailableConflicts
      - org.cpsolver.exam.criteria.StudentDistanceBackToBackConflicts
        - org.cpsolver.exam.criteria.InstructorDistanceBackToBackConflicts
      - org.cpsolver.exam.criteria.additional.StudentMoreThan1ADayConflicts
      - org.cpsolver.exam.criteria.StudentMoreThan2ADayConflicts
        - org.cpsolver.exam.criteria.InstructorMoreThan2ADayConflicts
    - org.cpsolver.instructor.criteria.InstructorSchedulingCriterion
      - org.cpsolver.instructor.criteria.AttributePreferences
      - org.cpsolver.instructor.criteria.BackToBack
      - org.cpsolver.instructor.criteria.CoursePreferences
      - org.cpsolver.instructor.criteria.DifferentLecture
      - org.cpsolver.instructor.criteria.InstructorPreferences
      - org.cpsolver.instructor.criteria.OriginalInstructor
      - org.cpsolver.instructor.criteria.SameCommon
      - org.cpsolver.instructor.criteria.SameCourse
      - org.cpsolver.instructor.criteria.SameDays
      - org.cpsolver.instructor.criteria.SameInstructor
      - org.cpsolver.instructor.criteria.SameLink
      - org.cpsolver.instructor.criteria.SameRoom
      - org.cpsolver.instructor.criteria.TeachingPreferences
      - org.cpsolver.instructor.criteria.TimeOverlaps
      - org.cpsolver.instructor.criteria.TimePreferences
      - org.cpsolver.instructor.criteria.UnusedInstructorLoad
    - org.cpsolver.coursett.criteria.TimetablingCriterion
      - org.cpsolver.coursett.criteria.BackToBackInstructorPreferences
      - org.cpsolver.coursett.criteria.BrokenTimePatterns
        - org.cpsolver.coursett.criteria.UselessHalfHours
      - org.cpsolver.coursett.criteria.DistributionPreferences
      - org.cpsolver.coursett.criteria.FlexibleConstraintCriterion
      - org.cpsolver.coursett.criteria.additional.InstructorConflict
      - org.cpsolver.coursett.criteria.additional.InstructorFairness
      - org.cpsolver.coursett.criteria.additional.InstructorLunchBreak
      - org.cpsolver.coursett.criteria.Perturbations
      - org.cpsolver.coursett.criteria.placement.PlacementSelectionCriterion
        - org.cpsolver.coursett.criteria.placement.AssignmentCount
        - org.cpsolver.coursett.criteria.placement.DeltaTimePreference
        - org.cpsolver.coursett.criteria.placement.HardConflicts
        - org.cpsolver.coursett.criteria.placement.WeightedHardConflicts (implements org.cpsolver.ifs.solution.SolutionListener<V,T>)
          - org.cpsolver.coursett.criteria.placement.PotentialHardConflicts
      - org.cpsolver.coursett.criteria.RoomPreferences
      - org.cpsolver.coursett.criteria.additional.RoomSizePenalty
      - org.cpsolver.coursett.criteria.RoomViolations
        - org.cpsolver.coursett.criteria.TimeViolations
      - org.cpsolver.coursett.criteria.SameSubpartBalancingPenalty
        - org.cpsolver.coursett.criteria.DepartmentBalancingPenalty
      - org.cpsolver.coursett.criteria.StudentConflict
        - org.cpsolver.coursett.criteria.additional.IgnoredCommittedStudentConflict
        - org.cpsolver.coursett.criteria.additional.IgnoredStudentConflict
        - org.cpsolver.coursett.criteria.additional.ImportantStudentConflict
          - org.cpsolver.coursett.criteria.additional.ImportantStudentHardConflict
        - org.cpsolver.coursett.criteria.additional.InstructorStudentConflict
          - org.cpsolver.coursett.criteria.additional.InstructorStudentHardConflict
        - org.cpsolver.coursett.criteria.additional.QuadraticStudentConflict
          - org.cpsolver.coursett.criteria.additional.QuadraticStudentHardConflict
        - org.cpsolver.coursett.criteria.StudentCommittedConflict
        - org.cpsolver.coursett.criteria.StudentDistanceConflict
        - org.cpsolver.coursett.criteria.StudentHardConflict
        - org.cpsolver.coursett.criteria.additional.StudentLuchBreak
        - org.cpsolver.coursett.criteria.additional.StudentMinimizeDaysOfWeek
        - org.cpsolver.coursett.criteria.additional.StudentMinimizeScheduleHoles
        - org.cpsolver.coursett.criteria.StudentOverlapConflict
        - org.cpsolver.coursett.criteria.additional.StudentOverLunchConflict
        - org.cpsolver.coursett.criteria.StudentWorkdayConflict
      - org.cpsolver.coursett.criteria.TimePreferences
      - org.cpsolver.coursett.criteria.TooBigRooms
  - org.cpsolver.ifs.criteria.AbstractCriterion.ValueContext (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
    - org.cpsolver.coursett.criteria.placement.AssignmentCount.AssignmentCountContext
    - org.cpsolver.exam.criteria.ExamRotationPenalty.RotationContext
    - org.cpsolver.coursett.criteria.additional.InstructorFairness.InstructorFairnessContext
    - org.cpsolver.coursett.criteria.additional.InstructorLunchBreak.InstructorLunchBreakContext
    - org.cpsolver.exam.criteria.RoomSplitDistancePenalty.RoomSplitContext
    - org.cpsolver.exam.criteria.RoomSplitPenalty.RoomSplitContext
    - org.cpsolver.coursett.criteria.placement.WeightedHardConflicts.IterationContext
  - org.cpsolver.studentsct.report.AccommodationConflictsTable (implements org.cpsolver.studentsct.report.StudentSectioningReport)
  - org.cpsolver.studentsct.model.AreaClassificationMajor
  - org.cpsolver.ifs.extension.AssignedValue<T>
  - org.cpsolver.ifs.extension.AssignedValue.AssignmentComparator<E> (implements java.util.Comparator<T>)
  - org.cpsolver.ifs.extension.AssignedValueSet<T>
  - org.cpsolver.ifs.assignment.AssignmentAbstract<V,T> (implements org.cpsolver.ifs.assignment.Assignment<V,T>)
    - org.cpsolver.ifs.assignment.AssignmentArray<V,T>
      - org.cpsolver.ifs.assignment.InheritedAssignmentArray<V,T> (implements org.cpsolver.ifs.assignment.InheritedAssignment<V,T>)
    - org.cpsolver.ifs.assignment.AssignmentMap<V,T>
    - org.cpsolver.ifs.assignment.DefaultParallelAssignment<V,T>
      - org.cpsolver.ifs.assignment.DefaultInheritedAssignment<V,T> (implements org.cpsolver.ifs.assignment.InheritedAssignment<V,T>)
    - org.cpsolver.ifs.assignment.DefaultSingleAssignment<V,T>
    - org.cpsolver.ifs.assignment.EmptyAssignment<V,T>
    - org.cpsolver.ifs.assignment.OptimisticInheritedAssignment<V,T> (implements org.cpsolver.ifs.assignment.InheritedAssignment<V,T>)
  - org.cpsolver.ifs.assignment.AssignmentComparator<X,V,T> (implements java.util.Comparator<T>)
    - org.cpsolver.ifs.assignment.ValueComparator<V,T>
  - org.cpsolver.ifs.assignment.context.AssignmentContextHelper
  - org.cpsolver.ifs.assignment.context.AssignmentContextHolderArray<V,T> (implements org.cpsolver.ifs.assignment.context.AssignmentContextHolder<V,T>)
  - org.cpsolver.ifs.assignment.context.AssignmentContextHolderMap<V,T> (implements org.cpsolver.ifs.assignment.context.AssignmentContextHolder<V,T>)
    - org.cpsolver.ifs.assignment.context.DefaultParallelAssignmentContextHolder<V,T>
      - org.cpsolver.ifs.assignment.context.InheritedAssignmentContextHolder<V,T>
    - org.cpsolver.ifs.assignment.context.DefaultSingleAssignmentContextHolder<V,T>
  - org.cpsolver.ifs.assignment.context.AssignmentContextReference<V,T,C>
  - org.cpsolver.instructor.model.Attribute
  - org.cpsolver.instructor.model.Attribute.Type
  - org.cpsolver.ifs.heuristics.BacktrackNeighbourSelection.BackTrackNeighbour (implements org.cpsolver.ifs.model.Neighbour<V,T>)
  - org.cpsolver.ifs.heuristics.BacktrackNeighbourSelection.BacktrackNeighbourSelectionContext (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.studentsct.heuristics.selection.BacktrackSelection (implements org.cpsolver.ifs.model.InfoProvider<V,T>, org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>, org.cpsolver.ifs.solver.SolverListener<V,T>)
    - org.cpsolver.studentsct.heuristics.selection.CriticalBacktrackSelection
  - org.cpsolver.studentsct.heuristics.selection.BacktrackSelection.RequestComparator (implements java.util.Comparator<T>)
  - org.cpsolver.studentsct.online.selection.BestPenaltyCriterion (implements org.cpsolver.studentsct.online.selection.MultiCriteriaBranchAndBoundSelection.SelectionCriterion)
  - org.cpsolver.studentsct.heuristics.selection.BranchBoundSelection (implements org.cpsolver.ifs.model.InfoProvider<V,T>, org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>, org.cpsolver.ifs.solver.SolverListener<V,T>)
    - org.cpsolver.studentsct.heuristics.selection.AssignInitialSelection
    - org.cpsolver.studentsct.heuristics.selection.CriticalCoursesBranchAndBoundSelection
    - org.cpsolver.studentsct.heuristics.selection.MinCreditBranchAndBoundSelection
    - org.cpsolver.studentsct.heuristics.selection.OnlineSelection
    - org.cpsolver.studentsct.heuristics.selection.ResectionIncompleteStudentsSelection
    - org.cpsolver.studentsct.heuristics.selection.ResectionUnassignedStudentsSelection
    - org.cpsolver.studentsct.online.selection.SuggestionSelection (implements org.cpsolver.studentsct.online.selection.OnlineSectioningSelection)
  - org.cpsolver.studentsct.heuristics.selection.BranchBoundSelection.BranchBoundNeighbour (implements org.cpsolver.ifs.model.Neighbour<V,T>)
  - org.cpsolver.studentsct.heuristics.selection.BranchBoundSelection.Selection
    - org.cpsolver.studentsct.heuristics.selection.AssignInitialSelection.InitialSelection
    - org.cpsolver.studentsct.heuristics.selection.CriticalCoursesBranchAndBoundSelection.CriticalCoursesSelection
    - org.cpsolver.studentsct.heuristics.selection.MinCreditBranchAndBoundSelection.MinCreditSelection
    - org.cpsolver.studentsct.heuristics.selection.OnlineSelection.EpsilonSelection
    - org.cpsolver.studentsct.online.selection.SuggestionSelection.Selection
  - org.cpsolver.studentsct.filter.CombinedStudentFilter (implements org.cpsolver.studentsct.filter.StudentFilter)
  - org.cpsolver.studentsct.model.Config.ConfigContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.coursett.model.Configuration
  - org.cpsolver.ifs.Constants
    - org.cpsolver.coursett.Constants
  - org.cpsolver.ifs.model.Constraint<V,T> (implements java.lang.Comparable<T>)
    - org.cpsolver.ifs.model.BinaryConstraint<V,T>
      - org.cpsolver.ifs.assignment.context.BinaryConstraintWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>)
        - org.cpsolver.coursett.constraint.JenrlConstraint (implements org.cpsolver.ifs.model.WeakeningConstraint<V,T>)
      - org.cpsolver.ifs.example.csp.CSPBinaryConstraint
      - org.cpsolver.ifs.example.tt.Dependence
    - org.cpsolver.coursett.constraint.ClassLimitConstraint
    - org.cpsolver.ifs.assignment.context.ConstraintWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>)
      - org.cpsolver.exam.model.ExamDistributionConstraint
      - org.cpsolver.exam.model.ExamRoom
      - org.cpsolver.coursett.constraint.FlexibleConstraint
        - org.cpsolver.coursett.constraint.BreakFlexibleConstraint
        - org.cpsolver.coursett.constraint.MaxBlockFlexibleConstraint
        - org.cpsolver.coursett.constraint.MaxBreaksFlexibleConstraint (implements org.cpsolver.ifs.model.WeakeningConstraint<V,T>)
        - org.cpsolver.coursett.constraint.MaxDaysFlexibleConstraint
        - org.cpsolver.coursett.constraint.MaxHalfDaysFlexibleConstraint
        - org.cpsolver.coursett.constraint.MaxHolesFlexibleConstraint (implements org.cpsolver.ifs.model.WeakeningConstraint<V,T>)
        - org.cpsolver.coursett.constraint.MaxWeeksFlexibleConstraint
      - org.cpsolver.coursett.constraint.GroupConstraint
      - org.cpsolver.coursett.constraint.InstructorConstraint
        - org.cpsolver.coursett.constraint.SoftInstructorConstraint
      - org.cpsolver.coursett.constraint.MinimizeNumberOfUsedGroupsOfTime (implements org.cpsolver.ifs.model.WeakeningConstraint<V,T>)
      - org.cpsolver.coursett.constraint.MinimizeNumberOfUsedRoomsConstraint (implements org.cpsolver.ifs.model.WeakeningConstraint<V,T>)
      - org.cpsolver.ifs.example.tt.Resource
      - org.cpsolver.ifs.example.rpp.ResourceConstraint
      - org.cpsolver.coursett.constraint.RoomConstraint
        - org.cpsolver.coursett.constraint.DiscouragedRoomConstraint (implements org.cpsolver.ifs.model.WeakeningConstraint<V,T>)
      - org.cpsolver.instructor.constraints.SameInstructorConstraint
      - org.cpsolver.instructor.constraints.SameLinkConstraint
      - org.cpsolver.coursett.constraint.SpreadConstraint (implements org.cpsolver.ifs.model.WeakeningConstraint<V,T>)
        - org.cpsolver.coursett.constraint.DepartmentSpreadConstraint
    - org.cpsolver.exam.model.ExamInstructor
    - org.cpsolver.exam.model.ExamStudent
    - org.cpsolver.ifs.model.GlobalConstraint<V,T>
      - org.cpsolver.studentsct.constraint.CancelledSections
      - org.cpsolver.studentsct.constraint.ConfigLimit
      - org.cpsolver.studentsct.constraint.CourseLimit
      - org.cpsolver.studentsct.constraint.DisabledSections
      - org.cpsolver.studentsct.constraint.FixedAssignments
      - org.cpsolver.studentsct.constraint.FixInitialAssignments
      - org.cpsolver.instructor.constraints.InstructorConstraint
      - org.cpsolver.studentsct.online.MaxOverExpectedConstraint
      - org.cpsolver.studentsct.constraint.RequiredReservation
      - org.cpsolver.studentsct.constraint.RequiredRestrictions
      - org.cpsolver.studentsct.constraint.RequiredSections
      - org.cpsolver.studentsct.constraint.ReservationLimit
      - org.cpsolver.studentsct.constraint.SectionLimit
      - org.cpsolver.studentsct.constraint.StudentNotAvailable
    - org.cpsolver.coursett.constraint.IgnoreStudentConflictsConstraint
    - org.cpsolver.ifs.example.jobshop.Job
    - org.cpsolver.studentsct.constraint.LinkedSections.LinkedSectionsConstraint
    - org.cpsolver.ifs.example.jobshop.Machine
    - org.cpsolver.studentsct.constraint.StudentConflict
  - org.cpsolver.ifs.util.Counter
  - org.cpsolver.instructor.model.Course
  - org.cpsolver.studentsct.model.Course.CourseContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.studentsct.report.CourseConflictTable (implements org.cpsolver.studentsct.report.StudentSectioningReport)
  - org.cpsolver.studentsct.check.CourseLimitCheck
  - org.cpsolver.studentsct.report.CourseSection (implements java.lang.Comparable<T>)
  - org.cpsolver.studentsct.report.CriticalCoursesTable (implements org.cpsolver.studentsct.report.StudentSectioningReport)
  - org.cpsolver.ifs.util.Csv2Html
  - org.cpsolver.ifs.util.Csv2Tex
  - org.cpsolver.ifs.util.CSVFile (implements java.io.Serializable)
  - org.cpsolver.ifs.util.CSVFile.CSVField (implements java.io.Serializable)
  - org.cpsolver.ifs.util.CSVFile.CSVLine (implements java.io.Serializable)
  - org.cpsolver.ifs.dbt.DbtValueSelection<V,T> (implements org.cpsolver.ifs.heuristics.ValueSelection<V,T>)
  - org.cpsolver.ifs.dbt.DbtVariableSelection<V,T> (implements org.cpsolver.ifs.heuristics.VariableSelection<V,T>)
  - org.cpsolver.ifs.perturbations.DefaultPerturbationsCounter<V,T> (implements org.cpsolver.ifs.perturbations.PerturbationsCounter<V,T>)
    - org.cpsolver.coursett.heuristics.UniversalPerturbationsCounter
  - org.cpsolver.coursett.model.DefaultStudentSectioning (implements org.cpsolver.ifs.model.InfoProvider<V,T>, org.cpsolver.coursett.model.StudentSectioning)
    - org.cpsolver.coursett.custom.DeterministicStudentSectioning
    - org.cpsolver.coursett.sectioning.SctSectioning (implements org.cpsolver.ifs.model.InfoProvider<V,T>)
    - org.cpsolver.coursett.sectioning.StudentSwapSectioning (implements org.cpsolver.ifs.model.InfoProvider<V,T>)
  - java.util.Dictionary<K,V>
    - java.util.Hashtable<K,V> (implements java.lang.Cloneable, java.util.Map<K,V>, java.io.Serializable)
      - java.util.Properties
        - org.cpsolver.ifs.util.DataProperties
  - org.cpsolver.studentsct.extension.DistanceConflict.Conflict
  - org.cpsolver.studentsct.extension.DistanceConflict.DistanceConflictContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.studentsct.report.DistanceConflictTable (implements org.cpsolver.studentsct.report.StudentSectioningReport)
  - org.cpsolver.ifs.util.DistanceMetric
  - org.cpsolver.coursett.DomainChart
    - org.cpsolver.coursett.JenrlChart
  - org.cpsolver.studentsct.heuristics.EnrollmentSelection (implements org.cpsolver.ifs.heuristics.ValueSelection<V,T>)
  - org.cpsolver.exam.reports.ExamAssignments
  - org.cpsolver.exam.heuristics.ExamColoringConstruction (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
  - org.cpsolver.exam.heuristics.ExamConstruction.Context (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.exam.model.ExamContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.exam.reports.ExamCourseSectionAssignments
  - org.cpsolver.exam.model.ExamDistributionConstraint.Context (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.exam.heuristics.ExamGreatDeluge.Context (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.exam.heuristics.ExamHillClimbing.Context (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.exam.reports.ExamInstructorConflicts
  - org.cpsolver.exam.reports.ExamNbrMeetingsPerDay
  - org.cpsolver.exam.heuristics.ExamNeighbourSelection.Context (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.exam.model.ExamOwner (implements java.lang.Comparable<T>)
  - org.cpsolver.exam.model.ExamPeriod (implements java.lang.Comparable<T>)
  - org.cpsolver.exam.model.ExamPeriodPlacement (implements java.lang.Comparable<T>)
  - org.cpsolver.exam.neighbours.ExamPeriodSwapMove (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
  - org.cpsolver.exam.reports.ExamPeriodUsage
  - org.cpsolver.exam.neighbours.ExamRandomMove (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
  - org.cpsolver.exam.model.ExamRoom.ExamRoomContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.exam.reports.ExamRoomComparator (implements java.util.Comparator<T>)
  - org.cpsolver.exam.neighbours.ExamRoomMove (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
  - org.cpsolver.exam.model.ExamRoomPlacement (implements java.lang.Comparable<T>)
  - org.cpsolver.exam.model.ExamRoomSharing
    - org.cpsolver.exam.model.PredefinedExamRoomSharing
    - org.cpsolver.exam.model.SimpleExamRoomSharing
  - org.cpsolver.exam.reports.ExamRoomSchedule
  - org.cpsolver.exam.reports.ExamRoomSplit
  - org.cpsolver.exam.neighbours.ExamRoomSwapNeighbour (implements org.cpsolver.ifs.model.Neighbour<V,T>)
  - org.cpsolver.exam.heuristics.ExamSimulatedAnnealing.Context (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.exam.split.ExamSplitMoves (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
  - org.cpsolver.exam.split.ExamSplitMoves.ExamMergeNeighbour (implements org.cpsolver.ifs.model.Neighbour<V,T>)
  - org.cpsolver.exam.split.ExamSplitMoves.ExamShuffleNeighbour (implements org.cpsolver.ifs.model.Neighbour<V,T>)
  - org.cpsolver.exam.split.ExamSplitMoves.ExamSplitNeighbour (implements org.cpsolver.ifs.model.Neighbour<V,T>)
  - org.cpsolver.exam.reports.ExamStudentBackToBackConflicts
  - org.cpsolver.exam.reports.ExamStudentConflicts
  - org.cpsolver.exam.reports.ExamStudentConflictsBySectionCourse
  - org.cpsolver.exam.reports.ExamStudentConflictsPerExam
  - org.cpsolver.exam.reports.ExamStudentDirectConflicts
  - org.cpsolver.exam.reports.ExamStudentMoreTwoADay
  - org.cpsolver.exam.heuristics.ExamTabuSearch.TabuList (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.exam.neighbours.ExamTimeMove (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
  - org.cpsolver.exam.heuristics.ExamUnassignedVariableSelection (implements org.cpsolver.ifs.heuristics.VariableSelection<V,T>)
  - org.cpsolver.ifs.extension.Extension<V,T> (implements org.cpsolver.ifs.model.ModelListener<V,T>)
    - org.cpsolver.ifs.extension.ConflictStatistics<V,T> (implements org.cpsolver.ifs.model.ConstraintListener<V,T>)
      - org.cpsolver.studentsct.extension.StudentConflictStatistics
    - org.cpsolver.ifs.assignment.context.ExtensionWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>)
      - org.cpsolver.studentsct.extension.DistanceConflict (implements org.cpsolver.ifs.assignment.context.CanInheritContext<V,T,C>, org.cpsolver.ifs.model.ModelListener<V,T>)
      - org.cpsolver.ifs.extension.MacPropagation<V,T>
        - org.cpsolver.ifs.dbt.DbtPropagation<V,T> (implements org.cpsolver.ifs.solver.SolverListener<V,T>)
      - org.cpsolver.ifs.extension.MacRevised<V,T>
      - org.cpsolver.ifs.extension.SearchIntensification<V,T> (implements org.cpsolver.ifs.solution.SolutionListener<V,T>)
      - org.cpsolver.studentsct.extension.StudentQuality (implements org.cpsolver.ifs.assignment.context.CanInheritContext<V,T,C>, org.cpsolver.ifs.model.InfoProvider<V,T>, org.cpsolver.ifs.model.ModelListener<V,T>)
      - org.cpsolver.studentsct.extension.TimeOverlapsCounter (implements org.cpsolver.ifs.assignment.context.CanInheritContext<V,T,C>)
    - org.cpsolver.ifs.extension.ViolatedInitials<V,T>
  - org.cpsolver.coursett.model.FinalSectioning
  - org.cpsolver.coursett.model.FinalSectioning.Move
  - org.cpsolver.coursett.model.FinalSectioning.MoveBetweenCfgs
  - org.cpsolver.coursett.heuristics.FixCompleteSolutionNeighbourSelection.FixCompleteSolutionNeighbourContext (implements org.cpsolver.ifs.assignment.context.AssignmentContext, java.util.Enumeration<E>)
  - org.cpsolver.coursett.constraint.FlexibleConstraint.Block
  - org.cpsolver.coursett.constraint.FlexibleConstraint.FlexibleConstraintContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
    - org.cpsolver.coursett.constraint.MaxBreaksFlexibleConstraint.MaxBreaksFlexibleConstraintContext
    - org.cpsolver.coursett.constraint.MaxDaysFlexibleConstraint.MaxDaysFlexibleConstraintContext
    - org.cpsolver.coursett.constraint.MaxHalfDaysFlexibleConstraint.MaxHalfDaysFlexibleConstraintContext
    - org.cpsolver.coursett.constraint.MaxHolesFlexibleConstraint.MaxHolesFlexibleConstraintContext
    - org.cpsolver.coursett.constraint.MaxWeeksFlexibleConstraint.MaxWeeksFlexibleConstraintContext
  - org.cpsolver.coursett.constraint.FlexibleConstraint.PlacementTimeComparator (implements java.util.Comparator<T>)
  - org.cpsolver.studentsct.filter.FreshmanStudentFilter (implements org.cpsolver.studentsct.filter.StudentFilter)
  - org.cpsolver.ifs.solution.GeneralSolutionComparator<V,T> (implements org.cpsolver.ifs.solution.SolutionComparator<V,T>)
    - org.cpsolver.coursett.heuristics.TimetableComparator
  - org.cpsolver.ifs.termination.GeneralTerminationCondition<V,T> (implements org.cpsolver.ifs.termination.TerminationCondition<V,T>)
  - org.cpsolver.ifs.heuristics.GeneralValueSelection<V,T> (implements org.cpsolver.ifs.heuristics.ValueSelection<V,T>)
  - org.cpsolver.ifs.heuristics.GeneralVariableSelection<V,T> (implements org.cpsolver.ifs.heuristics.VariableSelection<V,T>)
  - org.cpsolver.studentsct.GetChoices
  - org.cpsolver.coursett.GetInfo
  - org.cpsolver.studentsct.GetInfo
  - org.cpsolver.coursett.GetInfo.Info
  - org.cpsolver.studentsct.GetInfo.Info
  - org.cpsolver.coursett.GetMppInfo
  - org.cpsolver.coursett.constraint.GroupConstraint.GroupConstraintContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.coursett.constraint.GroupConstraint.ParametrizedConstraintType<P> (implements org.cpsolver.coursett.constraint.GroupConstraint.ConstraintTypeInterface)
  - org.cpsolver.coursett.heuristics.HeuristicSelector<E>
  - org.cpsolver.coursett.heuristics.HeuristicSelector.Element
  - org.cpsolver.studentsct.model.Choice
  - org.cpsolver.coursett.IdConvertor
  - org.cpsolver.ifs.util.IdGenerator
  - org.cpsolver.studentsct.check.InevitableStudentConflicts
  - org.cpsolver.studentsct.check.InevitableStudentConflicts.StudentCheck
  - org.cpsolver.ifs.assignment.context.InheritedAssignmentContextHolder.VersionedContext<U> (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.coursett.model.InitialSectioning
    - org.cpsolver.coursett.custom.DeterministicStudentSectioning.DeterministicInitialSectioning (implements java.util.Comparator<T>)
      - org.cpsolver.coursett.sectioning.SctSectioning.GroupBasedInitialSectioning
  - org.cpsolver.coursett.model.InitialSectioning.Group
  - org.cpsolver.studentsct.model.Instructor
  - org.cpsolver.instructor.model.Instructor.Context (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.coursett.constraint.InstructorConstraint.InstructorConstraintContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
    - org.cpsolver.coursett.constraint.SoftInstructorConstraint.SoftInstructorConstraintContext
  - org.cpsolver.coursett.criteria.additional.InstructorFairness.InstructorFairnessContext.Instructor
  - org.cpsolver.coursett.criteria.additional.InstructorLunchBreak.CompactInfo
  - org.cpsolver.coursett.constraint.JenrlConstraint.JenrlConstraintContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.ifs.util.JProf
  - org.cpsolver.ifs.model.LazyNeighbour<V,T> (implements org.cpsolver.ifs.model.Neighbour<V,T>)
    - org.cpsolver.ifs.model.LazySwap<V,T>
  - org.cpsolver.coursett.model.Lecture.LectureContext (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.coursett.heuristics.LectureSelection (implements org.cpsolver.ifs.heuristics.VariableSelection<V,T>)
  - org.cpsolver.studentsct.constraint.LinkedSections
  - org.cpsolver.studentsct.constraint.LinkedSections.CurrentAssignment (implements org.cpsolver.studentsct.constraint.LinkedSections.EnrollmentAssignment)
  - org.cpsolver.ifs.extension.MacPropagation.NoGood (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.ifs.extension.MacRevised.NoGood (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.ifs.algorithms.MetaHeuristicSearch.MetaHeuristicSearchContext (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.studentsct.online.expectations.MinimizeConflicts (implements org.cpsolver.studentsct.online.expectations.OverExpectedCriterion, org.cpsolver.studentsct.online.expectations.OverExpectedCriterion.HasContext)
  - org.cpsolver.coursett.constraint.MinimizeNumberOfUsedGroupsOfTime.MinimizeNumberOfUsedGroupsOfTimeContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.coursett.constraint.MinimizeNumberOfUsedRoomsConstraint.MinimizeNumberOfUsedRoomsConstraintContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.exam.MistaTables
  - org.cpsolver.exam.MistaTables.Counter
  - org.cpsolver.exam.MistaTables.Table
    - org.cpsolver.exam.MistaTables.Problems
    - org.cpsolver.exam.MistaTables.Rooms
  - org.cpsolver.ifs.model.Model<V,T>
    - org.cpsolver.ifs.constant.ConstantModel<V,T>
      - org.cpsolver.coursett.model.TimetableModel
    - org.cpsolver.ifs.example.csp.CSPModel
    - org.cpsolver.instructor.model.InstructorSchedulingModel
      - org.cpsolver.instructor.Test
        - org.cpsolver.instructor.test.ChmTest
        - org.cpsolver.instructor.test.MathTest
    - org.cpsolver.ifs.example.jobshop.JobShopModel
    - org.cpsolver.ifs.assignment.context.ModelWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>)
      - org.cpsolver.exam.model.ExamModel
      - org.cpsolver.studentsct.StudentSectioningModel (implements org.cpsolver.ifs.assignment.context.CanInheritContext<V,T,C>)
        - org.cpsolver.studentsct.online.OnlineSectioningModel
          - org.cpsolver.studentsct.online.Test.TestModel
    - org.cpsolver.ifs.example.rpp.RPPModel
    - org.cpsolver.ifs.example.csp.StructuredCSPModel
    - org.cpsolver.studentsct.StudentSctBBTest
    - org.cpsolver.ifs.example.tt.TimetableModel
  - org.cpsolver.ifs.solution.MPPSolutionComparator<V,T> (implements org.cpsolver.ifs.solution.SolutionComparator<V,T>)
  - org.cpsolver.ifs.termination.MPPTerminationCondition<V,T> (implements org.cpsolver.ifs.termination.TerminationCondition<V,T>)
  - org.cpsolver.studentsct.online.selection.MultiCriteriaBranchAndBoundSelection (implements org.cpsolver.studentsct.online.selection.OnlineSectioningSelection)
  - org.cpsolver.ifs.algorithms.NeighbourSearch.NeighbourSearchContext (implements org.cpsolver.ifs.assignment.context.AssignmentContext, org.cpsolver.ifs.solution.SolutionListener<V,T>)
    - org.cpsolver.ifs.algorithms.GreatDeluge.GreatDelugeContext
    - org.cpsolver.ifs.algorithms.HillClimber.HillClimberContext
      - org.cpsolver.ifs.algorithms.StepCountingHillClimber.StepCountingHillClimberContext
    - org.cpsolver.ifs.algorithms.SimulatedAnnealing.SimulatedAnnealingContext
  - org.cpsolver.ifs.assignment.context.NeighbourSelectionWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>, org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
    - org.cpsolver.exam.heuristics.ExamConstruction
    - org.cpsolver.exam.heuristics.ExamGreatDeluge (implements org.cpsolver.ifs.model.LazyNeighbour.LazyNeighbourAcceptanceCriterion<V,T>, org.cpsolver.ifs.solution.SolutionListener<V,T>)
    - org.cpsolver.exam.heuristics.ExamHillClimbing (implements org.cpsolver.ifs.model.LazyNeighbour.LazyNeighbourAcceptanceCriterion<V,T>, org.cpsolver.ifs.solution.SolutionListener<V,T>)
    - org.cpsolver.exam.heuristics.ExamNeighbourSelection (implements org.cpsolver.ifs.termination.TerminationCondition<V,T>)
    - org.cpsolver.exam.heuristics.ExamSimulatedAnnealing (implements org.cpsolver.ifs.model.LazyNeighbour.LazyNeighbourAcceptanceCriterion<V,T>, org.cpsolver.ifs.solution.SolutionListener<V,T>)
    - org.cpsolver.exam.heuristics.ExamTabuSearch (implements org.cpsolver.ifs.heuristics.ValueSelection<V,T>)
    - org.cpsolver.coursett.heuristics.FixCompleteSolutionNeighbourSelection
    - org.cpsolver.ifs.algorithms.MetaHeuristicSearch<V,T>
    - org.cpsolver.ifs.algorithms.NeighbourSearch<V,T> (implements org.cpsolver.ifs.model.LazyNeighbour.LazyNeighbourAcceptanceCriterion<V,T>, org.cpsolver.ifs.solution.SolutionListener<V,T>)
      - org.cpsolver.ifs.algorithms.GreatDeluge<V,T>
      - org.cpsolver.ifs.algorithms.HillClimber<V,T>
        - org.cpsolver.ifs.algorithms.StepCountingHillClimber<V,T>
      - org.cpsolver.ifs.algorithms.SimulatedAnnealing<V,T>
    - org.cpsolver.ifs.algorithms.ParallelConstruction<V,T> (implements org.cpsolver.ifs.solution.SolutionListener<V,T>)
    - org.cpsolver.ifs.algorithms.SimpleSearch<V,T>
  - org.cpsolver.coursett.heuristics.NeighbourSelectionWithSuggestions.NeighbourSelectionWithSuggestionsContext
  - org.cpsolver.coursett.heuristics.NeighbourSelectionWithSuggestions.SuggestionNeighbour (implements org.cpsolver.ifs.model.Neighbour<V,T>)
  - org.cpsolver.ifs.algorithms.NeighbourSelector<V,T> (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
  - org.cpsolver.studentsct.online.expectations.NeverOverExpected (implements org.cpsolver.studentsct.online.expectations.OverExpectedCriterion)
  - org.cpsolver.studentsct.model.Offering
  - org.cpsolver.coursett.model.OnFlySectioning (implements org.cpsolver.ifs.model.ModelListener<V,T>)
  - org.cpsolver.studentsct.online.selection.OnlineSectioningCriterion (implements org.cpsolver.studentsct.online.selection.MultiCriteriaBranchAndBoundSelection.SelectionCriterion)
    - org.cpsolver.studentsct.online.selection.EqualWeightCriterion
  - org.cpsolver.studentsct.online.selection.OnlineSectioningCriterion.TimeToAvoid
  - org.cpsolver.studentsct.OnlineSectProof
  - org.cpsolver.studentsct.OnlineSectProof.CatCmp (implements java.util.Comparator<T>)
  - org.cpsolver.studentsct.OnlineSectProof.Counter
  - org.cpsolver.studentsct.OnlineSectProof.Sequence
    - org.cpsolver.studentsct.OnlineSectProof.StudentSequence
  - org.cpsolver.studentsct.weights.OriginalStudentWeights (implements org.cpsolver.studentsct.weights.StudentWeights)
  - org.cpsolver.studentsct.check.OverlapCheck
  - org.cpsolver.ifs.algorithms.ParallelConstruction.ConstructionContext (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.studentsct.online.expectations.PenaltyNotNegative (implements org.cpsolver.studentsct.online.expectations.OverExpectedCriterion)
  - org.cpsolver.studentsct.online.expectations.PercentageOverExpected (implements org.cpsolver.studentsct.online.expectations.OverExpectedCriterion)
    - org.cpsolver.studentsct.online.expectations.AvoidUnbalancedWhenNoExpectations
    - org.cpsolver.studentsct.online.expectations.FractionallyOverExpected
      - org.cpsolver.studentsct.online.expectations.FractionallyUnbalancedWhenNoExpectations
    - org.cpsolver.studentsct.online.expectations.MoreSpaceThanExpected
  - org.cpsolver.coursett.heuristics.PlacementSelection (implements org.cpsolver.ifs.heuristics.ValueSelection<V,T>)
  - org.cpsolver.instructor.model.Preference<T>
  - org.cpsolver.coursett.preference.PreferenceCombination
    - org.cpsolver.coursett.preference.AveragePreferenceCombination
    - org.cpsolver.coursett.preference.MinMaxPreferenceCombination
    - org.cpsolver.coursett.preference.SumPreferenceCombination
  - org.cpsolver.studentsct.heuristics.selection.PriorityConstructionSelection (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
  - org.cpsolver.studentsct.heuristics.selection.PriorityConstructionSelection.ConstructionNeighbour (implements org.cpsolver.ifs.model.Neighbour<V,T>)
  - org.cpsolver.studentsct.weights.PriorityStudentWeights (implements org.cpsolver.studentsct.weights.StudentWeights)
    - org.cpsolver.studentsct.weights.EqualStudentWeights
  - org.cpsolver.studentsct.filter.PriortyStudentFilter (implements org.cpsolver.studentsct.filter.StudentFilter)
  - org.cpsolver.ifs.util.ProblemLoader<V,T,M> (implements java.lang.Runnable)
    - org.cpsolver.studentsct.StudentSectioningLoader
      - org.cpsolver.studentsct.StudentSectioningXMLLoader
    - org.cpsolver.coursett.TimetableLoader
      - org.cpsolver.coursett.TimetableXMLLoader
  - org.cpsolver.ifs.util.ProblemSaver<V,T,M> (implements java.lang.Runnable)
    - org.cpsolver.studentsct.StudentSectioningSaver
      - org.cpsolver.studentsct.StudentSectioningXMLSaver
    - org.cpsolver.coursett.TimetableSaver
      - org.cpsolver.coursett.TimetableXMLSaver
  - org.cpsolver.ifs.util.Progress
  - org.cpsolver.ifs.util.Progress.Message (implements java.io.Serializable)
  - org.cpsolver.ifs.util.ProgressWriter (implements org.cpsolver.ifs.util.ProgressListener)
  - org.cpsolver.ifs.util.PrologFile (implements java.util.Iterator<E>)
  - org.cpsolver.ifs.util.PrologFile.Term
  - org.cpsolver.ifs.algorithms.neighbourhoods.RandomMove<V,T> (implements org.cpsolver.ifs.algorithms.neighbourhoods.HillClimberSelection, org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
    - org.cpsolver.coursett.neighbourhoods.RoomChange
    - org.cpsolver.coursett.neighbourhoods.TimeChange
  - org.cpsolver.studentsct.filter.RandomStudentFilter (implements org.cpsolver.studentsct.filter.StudentFilter)
  - org.cpsolver.ifs.algorithms.neighbourhoods.RandomSwapMove<V,T> (implements org.cpsolver.ifs.algorithms.neighbourhoods.HillClimberSelection, org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
    - org.cpsolver.coursett.neighbourhoods.RoomSwap
    - org.cpsolver.ifs.algorithms.neighbourhoods.SuggestionMove<V,T>
    - org.cpsolver.coursett.neighbourhoods.TimeSwap
  - org.cpsolver.ifs.algorithms.neighbourhoods.RandomSwapMove.SwapNeighbour (implements org.cpsolver.ifs.model.Neighbour<V,T>)
  - org.cpsolver.studentsct.heuristics.selection.RandomUnassignmentSelection (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
    - org.cpsolver.studentsct.heuristics.selection.RndUnProblStudSelection
  - org.cpsolver.studentsct.heuristics.selection.RandomUnassignmentSelection.UnassignStudentNeighbour (implements org.cpsolver.ifs.model.Neighbour<V,T>)
  - org.cpsolver.studentsct.filter.RealStudentFilter (implements org.cpsolver.studentsct.filter.StudentFilter)
  - org.cpsolver.studentsct.model.Request.RequestContext (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
    - org.cpsolver.studentsct.model.FreeTimeRequest.FreeTimeRequestContext
  - org.cpsolver.studentsct.model.RequestGroup.RequestGroupContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.studentsct.report.RequestGroupTable (implements org.cpsolver.studentsct.report.StudentSectioningReport)
  - org.cpsolver.studentsct.report.RequestPriorityTable (implements org.cpsolver.studentsct.report.StudentSectioningReport)
  - org.cpsolver.studentsct.reservation.Reservation.ReservationContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.ifs.example.tt.Resource.Context (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.ifs.example.rpp.ResourceConstraint.Context (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.studentsct.heuristics.RestoreBestSolution (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
  - org.cpsolver.studentsct.reservation.Restriction
    - org.cpsolver.studentsct.reservation.CourseRestriction
    - org.cpsolver.studentsct.reservation.CurriculumRestriction
    - org.cpsolver.studentsct.reservation.IndividualRestriction
  - org.cpsolver.studentsct.filter.ReverseStudentFilter (implements org.cpsolver.studentsct.filter.StudentFilter)
  - org.cpsolver.coursett.constraint.RoomConstraint.RoomConstraintContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
    - org.cpsolver.coursett.constraint.DiscouragedRoomConstraint.DiscouragedRoomConstraintContext
  - org.cpsolver.coursett.model.RoomLocation (implements java.lang.Comparable<T>)
  - org.cpsolver.coursett.model.RoomSharingModel
  - org.cpsolver.studentsct.heuristics.RouletteWheelRequestSelection (implements org.cpsolver.ifs.heuristics.VariableSelection<V,T>)
  - org.cpsolver.ifs.heuristics.RouletteWheelSelection<E> (implements java.util.Enumeration<E>)
  - org.cpsolver.instructor.constraints.SameInstructorConstraint.Context (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.instructor.constraints.SameLinkConstraint.Context (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.coursett.sectioning.SctEnrollment (implements java.lang.Comparable<T>)
  - org.cpsolver.coursett.sectioning.SctModel
  - org.cpsolver.coursett.sectioning.SctStudent (implements java.lang.Comparable<T>)
  - org.cpsolver.ifs.extension.SearchIntensification.Context (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.instructor.model.Section
  - org.cpsolver.studentsct.model.Section.SectionContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.studentsct.report.SectionConflictTable (implements org.cpsolver.studentsct.report.StudentSectioningReport)
  - org.cpsolver.studentsct.check.SectionLimitCheck
  - org.cpsolver.studentsct.heuristics.selection.ShuffleStudentsSelection (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
  - org.cpsolver.ifs.model.SimpleNeighbour<V,T> (implements org.cpsolver.ifs.model.Neighbour<V,T>)
    - org.cpsolver.exam.neighbours.ExamSimpleNeighbour
  - org.cpsolver.ifs.algorithms.SimpleSearch.SimpleSearchContext (implements org.cpsolver.ifs.assignment.context.AssignmentContext)
  - org.cpsolver.ifs.example.csp.SimpleTest
  - org.cpsolver.ifs.util.SoftCache<K,V> (implements java.util.Map<K,V>)
  - org.cpsolver.ifs.solution.Solution<V,T>
  - org.cpsolver.studentsct.Solution2Expectations
  - org.cpsolver.coursett.SolutionEvaluator
  - org.cpsolver.ifs.solver.Solver<V,T>
    - org.cpsolver.ifs.solver.ParallelSolver<V,T>
    - org.cpsolver.coursett.TimetableSolver
  - org.cpsolver.coursett.constraint.SpreadConstraint.SpreadConstraintContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.ifs.heuristics.StandardNeighbourSelection<V,T> (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
    - org.cpsolver.ifs.heuristics.BacktrackNeighbourSelection<V,T>
      - org.cpsolver.studentsct.heuristics.RandomizedBacktrackNeighbourSelection
      - org.cpsolver.studentsct.heuristics.selection.ShuffleStudentsSelection.ShuffleBacktrackNeighbourSelection
    - org.cpsolver.coursett.heuristics.NeighbourSelectionWithSuggestions
    - org.cpsolver.ifs.heuristics.RoundRobinNeighbourSelection<V,T>
      - org.cpsolver.studentsct.heuristics.StudentSctNeighbourSelection (implements org.cpsolver.ifs.solver.SolverListener<V,T>)
        - org.cpsolver.studentsct.heuristics.TwoPhaseStudentSctNeighbourSelection
  - org.cpsolver.studentsct.heuristics.selection.StandardSelection (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
    - org.cpsolver.studentsct.heuristics.selection.CriticalStandardSelection
  - org.cpsolver.coursett.model.Student (implements java.lang.Comparable<T>)
  - org.cpsolver.studentsct.model.Student (implements java.lang.Comparable<T>)
  - org.cpsolver.studentsct.heuristics.selection.StudentEnrollmentSwapSelection (implements org.cpsolver.ifs.model.InfoProvider<V,T>, org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>, org.cpsolver.ifs.solver.SolverListener<V,T>)
  - org.cpsolver.coursett.model.StudentGroup (implements java.lang.Comparable<T>)
  - org.cpsolver.studentsct.model.StudentGroup
  - org.cpsolver.studentsct.heuristics.studentord.StudentChoiceOrder (implements java.util.Comparator<T>, org.cpsolver.studentsct.heuristics.studentord.StudentOrder)
    - org.cpsolver.studentsct.heuristics.studentord.StudentByRequestDate
      - org.cpsolver.studentsct.heuristics.studentord.StudentByPriorityRequestDate
    - org.cpsolver.studentsct.heuristics.studentord.StudentGroupsChoiceRealFirstOrder
    - org.cpsolver.studentsct.heuristics.studentord.StudentChoiceRealFirstOrder
  - org.cpsolver.studentsct.heuristics.studentord.StudentMajorOrder (implements java.util.Comparator<T>, org.cpsolver.studentsct.heuristics.studentord.StudentOrder)
  - org.cpsolver.studentsct.StudentPreferencePenalties
  - org.cpsolver.studentsct.extension.StudentQuality.Conflict
  - org.cpsolver.studentsct.extension.StudentQuality.Context
  - org.cpsolver.studentsct.extension.StudentQuality.FreeTimes (implements java.lang.Iterable<T>)
  - org.cpsolver.studentsct.extension.StudentQuality.Nothing (implements java.lang.Iterable<T>)
  - org.cpsolver.studentsct.extension.StudentQuality.SingleTimeIterable (implements java.lang.Iterable<T>)
  - org.cpsolver.studentsct.extension.StudentQuality.StudentQualityContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.studentsct.extension.StudentQuality.Unavailabilities (implements java.lang.Iterable<T>)
  - org.cpsolver.studentsct.heuristics.studentord.StudentRandomOrder (implements org.cpsolver.studentsct.heuristics.studentord.StudentOrder)
  - org.cpsolver.studentsct.heuristics.studentord.StudentRandomRealFirstOrder (implements org.cpsolver.studentsct.heuristics.studentord.StudentOrder)
  - org.cpsolver.studentsct.StudentRequestXml
  - org.cpsolver.studentsct.StudentSctBBTest.Message
  - org.cpsolver.studentsct.StudentSectioningModel.StudentSectioningModelContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>, org.cpsolver.ifs.model.InfoProvider<V,T>)
  - org.cpsolver.studentsct.online.selection.StudentSchedulingAssistantWeights (implements org.cpsolver.studentsct.weights.StudentWeights)
    - org.cpsolver.studentsct.online.selection.ResectioningWeights
  - org.cpsolver.coursett.sectioning.StudentSwap (implements org.cpsolver.coursett.sectioning.StudentMove)
  - org.cpsolver.coursett.sectioning.StudentSwapGenerator (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
  - org.cpsolver.studentsct.model.Subpart (implements java.lang.Comparable<T>)
  - org.cpsolver.studentsct.online.selection.SuggestionsBranchAndBound
    - org.cpsolver.studentsct.online.selection.MultiCriteriaBranchAndBoundSuggestions
  - org.cpsolver.studentsct.online.selection.SuggestionsBranchAndBound.EnrollmentSectionComparator (implements java.util.Comparator<T>)
  - org.cpsolver.studentsct.online.selection.SuggestionsBranchAndBound.SectionAssignmentComparator (implements java.util.Comparator<T>)
  - org.cpsolver.studentsct.online.selection.SuggestionsBranchAndBound.Suggestion (implements java.lang.Comparable<T>)
  - org.cpsolver.studentsct.heuristics.selection.SwapStudentSelection (implements org.cpsolver.ifs.model.InfoProvider<V,T>, org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>, org.cpsolver.studentsct.heuristics.selection.ProblemStudentsProvider, org.cpsolver.ifs.solver.SolverListener<V,T>)
  - org.cpsolver.studentsct.heuristics.selection.SwapStudentSelection.Selection
  - org.cpsolver.studentsct.heuristics.selection.SwapStudentSelection.SwapStudentNeighbour (implements org.cpsolver.ifs.model.Neighbour<V,T>)
  - org.cpsolver.studentsct.report.TableauReport (implements org.cpsolver.studentsct.report.StudentSectioningReport)
  - org.cpsolver.instructor.model.TeachingRequest
  - org.cpsolver.coursett.Test (implements org.cpsolver.ifs.solution.SolutionListener<V,T>)
  - org.cpsolver.exam.Test
  - org.cpsolver.ifs.example.csp.Test
  - org.cpsolver.ifs.example.jobshop.Test
  - org.cpsolver.ifs.example.rpp.Test
  - org.cpsolver.ifs.example.tt.Test
  - org.cpsolver.studentsct.Test
  - org.cpsolver.studentsct.online.Test
  - org.cpsolver.studentsct.Test.ExtraStudentFilter (implements org.cpsolver.studentsct.filter.StudentFilter)
  - org.cpsolver.studentsct.Test.TestSolutionListener (implements org.cpsolver.ifs.solution.SolutionListener<V,T>)
  - java.lang.Thread (implements java.lang.Runnable)
    - org.cpsolver.ifs.solver.ParallelSolver.AssignmentThread
    - org.cpsolver.ifs.solver.ParallelSolver.SolverThread
    - org.cpsolver.ifs.solver.ParallelSolver.SynchronizationThread
    - org.cpsolver.ifs.solver.Solver.SolverThread
    - org.cpsolver.studentsct.online.Test.Executor
    - org.cpsolver.exam.Test.ShutdownHook
  - org.cpsolver.coursett.model.TimeLocation
    - org.cpsolver.instructor.model.EnrolledClass
  - org.cpsolver.studentsct.report.TimeOverlapConflictTable (implements org.cpsolver.studentsct.report.StudentSectioningReport)
  - org.cpsolver.studentsct.extension.TimeOverlapsCounter.Conflict
  - org.cpsolver.studentsct.extension.TimeOverlapsCounter.TimeOverlapsCounterContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - org.cpsolver.coursett.TimetableXMLLoader.DatePattern
  - org.cpsolver.ifs.util.ToolBox
  - org.cpsolver.studentsct.heuristics.TwoPhaseStudentSctNeighbourSelection.RestoreDummyStudents (implements org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>)
  - org.cpsolver.studentsct.heuristics.selection.UnassignedCriticalCourseRequestSelection (implements org.cpsolver.ifs.heuristics.VariableSelection<V,T>)
  - org.cpsolver.studentsct.heuristics.selection.UnassignedRequestSelection (implements org.cpsolver.ifs.heuristics.VariableSelection<V,T>)
  - org.cpsolver.studentsct.model.Unavailability (implements org.cpsolver.studentsct.model.SctAssignment)
  - org.cpsolver.studentsct.report.UnbalancedSectionsTable (implements org.cpsolver.studentsct.report.StudentSectioningReport)
  - org.cpsolver.ifs.model.Value<V,T> (implements org.cpsolver.ifs.assignment.AssignmentComparable<X,V,T>, java.lang.Comparable<T>)
    - org.cpsolver.ifs.example.csp.CSPValue
    - org.cpsolver.studentsct.model.Enrollment
    - org.cpsolver.exam.model.ExamPlacement
    - org.cpsolver.ifs.example.jobshop.Location
    - org.cpsolver.ifs.example.rpp.Location
    - org.cpsolver.ifs.example.tt.Location
    - org.cpsolver.coursett.model.Placement
    - org.cpsolver.instructor.model.TeachingAssignment
  - org.cpsolver.ifs.model.Variable<V,T> (implements java.lang.Comparable<T>)
    - org.cpsolver.ifs.example.tt.Activity
    - org.cpsolver.ifs.example.csp.CSPVariable
    - org.cpsolver.exam.model.Exam
    - org.cpsolver.ifs.example.jobshop.Operation
    - org.cpsolver.ifs.example.rpp.Rectangle
    - org.cpsolver.instructor.model.TeachingRequest.Variable
    - org.cpsolver.ifs.assignment.context.VariableWithContext<V,T,C> (implements org.cpsolver.ifs.assignment.context.CanHoldContext, org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>)
      - org.cpsolver.coursett.model.Lecture (implements org.cpsolver.ifs.constant.ConstantVariable<T>)
      - org.cpsolver.studentsct.model.Request
        - org.cpsolver.studentsct.model.CourseRequest
        - org.cpsolver.studentsct.model.FreeTimeRequest (implements org.cpsolver.studentsct.model.SctAssignment)

## Interface Hierarchy

- org.cpsolver.ifs.assignment.Assignment<V,T>
  - org.cpsolver.ifs.assignment.InheritedAssignment<V,T>
- org.cpsolver.ifs.assignment.context.AssignmentContext
  - org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>
- org.cpsolver.ifs.assignment.context.AssignmentContextHolder<V,T>
- org.cpsolver.ifs.util.Callback
- org.cpsolver.ifs.assignment.context.CanHoldContext
- org.cpsolver.ifs.assignment.context.CanInheritContext<V,T,C>
- java.lang.Comparable<T>
  - org.cpsolver.ifs.assignment.AssignmentComparable<X,V,T>
- org.cpsolver.ifs.constant.ConstantVariable<T>
- org.cpsolver.ifs.model.ConstraintListener<V,T>
- org.cpsolver.ifs.util.CSVFile.CSVFilter
- java.util.Enumeration<E>
  - org.cpsolver.coursett.model.TimeLocation.IntEnumeration
- org.cpsolver.coursett.constraint.GroupConstraint.AssignmentPairCheck
  - org.cpsolver.coursett.constraint.GroupConstraint.ConstraintTypeInterface
- org.cpsolver.coursett.constraint.GroupConstraint.AssignmentParameterPairCheck<P>
- org.cpsolver.coursett.constraint.GroupConstraint.PairCheck
- org.cpsolver.ifs.assignment.context.HasAssignmentContext<V,T,C>
- org.cpsolver.ifs.algorithms.neighbourhoods.HillClimberSelection
- org.cpsolver.ifs.model.InfoProvider<V,T>
  - org.cpsolver.ifs.criteria.Criterion<V,T> (also extends org.cpsolver.ifs.model.ExtendedInfoProvider<V,T>, org.cpsolver.ifs.model.ModelListener<V,T>)
  - org.cpsolver.ifs.model.ExtendedInfoProvider<V,T>
    - org.cpsolver.ifs.criteria.Criterion<V,T> (also extends org.cpsolver.ifs.model.ModelListener<V,T>)
- org.cpsolver.ifs.model.LazyNeighbour.LazyNeighbourAcceptanceCriterion<V,T>
- org.cpsolver.studentsct.constraint.LinkedSections.ConflictHandler
- org.cpsolver.studentsct.constraint.LinkedSections.EnrollmentAssignment
- org.cpsolver.ifs.model.ModelListener<V,T>
  - org.cpsolver.ifs.criteria.Criterion<V,T> (also extends org.cpsolver.ifs.model.ExtendedInfoProvider<V,T>)
- org.cpsolver.studentsct.online.selection.MultiCriteriaBranchAndBoundSelection.SelectionComparator
  - org.cpsolver.studentsct.online.selection.MultiCriteriaBranchAndBoundSelection.SelectionCriterion
- org.cpsolver.ifs.model.Neighbour<V,T>
  - org.cpsolver.coursett.sectioning.StudentMove
- org.cpsolver.ifs.heuristics.NeighbourSelection<V,T>
- org.cpsolver.studentsct.online.selection.OnlineSectioningSelection
- org.cpsolver.studentsct.online.expectations.OverExpectedCriterion
- org.cpsolver.studentsct.online.expectations.OverExpectedCriterion.HasContext
- org.cpsolver.ifs.perturbations.PerturbationsCounter<V,T>
- org.cpsolver.studentsct.heuristics.selection.ProblemStudentsProvider
- org.cpsolver.ifs.util.ProgressListener
- org.cpsolver.studentsct.online.selection.ResectioningWeights.LastSectionProvider
- org.cpsolver.studentsct.model.SctAssignment
- org.cpsolver.ifs.solution.SolutionComparator<V,T>
  - org.cpsolver.studentsct.weights.StudentWeights
- org.cpsolver.ifs.solution.SolutionListener<V,T>
- org.cpsolver.ifs.solver.SolverListener<V,T>
- org.cpsolver.studentsct.filter.StudentFilter
- org.cpsolver.studentsct.heuristics.studentord.StudentOrder
- org.cpsolver.studentsct.extension.StudentQuality.Quality
- org.cpsolver.coursett.model.StudentSectioning
- org.cpsolver.studentsct.report.StudentSectioningReport
- org.cpsolver.studentsct.online.selection.SuggestionsBranchAndBound.SuggestionFilter
- org.cpsolver.ifs.termination.TerminationCondition<V,T>
- org.cpsolver.ifs.heuristics.ValueSelection<V,T>
- org.cpsolver.ifs.model.VariableListener<T>
- org.cpsolver.ifs.heuristics.VariableSelection<V,T>
- org.cpsolver.ifs.model.WeakeningConstraint<V,T>

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - org.cpsolver.coursett.constraint.FlexibleConstraint.FlexibleConstraintType
    - org.cpsolver.coursett.constraint.GroupConstraint.Flag
    - org.cpsolver.coursett.constraint.GroupConstraint.ConstraintType (implements org.cpsolver.coursett.constraint.GroupConstraint.ConstraintTypeInterface)
    - org.cpsolver.ifs.algorithms.StepCountingHillClimber.Mode
    - org.cpsolver.ifs.assignment.context.ModelWithContext.ContextUpdateType
    - org.cpsolver.ifs.criteria.AbstractCriterion.ValueUpdateType
    - org.cpsolver.ifs.util.DistanceMetric.Ellipsoid
    - org.cpsolver.studentsct.extension.StudentQuality.WeightType
    - org.cpsolver.studentsct.extension.StudentQuality.Type
    - org.cpsolver.studentsct.model.Request.RequestPriority
    - org.cpsolver.studentsct.model.Student.StudentPriority
    - org.cpsolver.studentsct.online.expectations.PercentageOverExpected.Rounding
    - org.cpsolver.studentsct.report.SectionConflictTable.Type
    - org.cpsolver.studentsct.weights.StudentWeights.Implementation