# Uses of Package
org.cpsolver.coursett.constraint

- Packages that use org.cpsolver.coursett.constraint
  Package | Description
  --- | ---
  org.cpsolver.coursett.constraint | University Course Timetabling: Constraints.
  org.cpsolver.coursett.criteria | University Course Timetabling: Criteria.
  org.cpsolver.coursett.criteria.additional | University Course Timetabling: Additional (Experimental) Criteria.
  org.cpsolver.coursett.model | University Course Timetabling: Model.

- Classes in org.cpsolver.coursett.constraint used by org.cpsolver.coursett.constraint
  Class and Description
  FlexibleConstraint Flexible constraint.
  FlexibleConstraint.Block A block is a list of placements sorted by startSlot, which are BTB.
  FlexibleConstraint.FlexibleConstraintContext
  FlexibleConstraint.FlexibleConstraintType Flexible constraint types
  GroupConstraint Group constraint.
  GroupConstraint.AssignmentPairCheck Group constraints that can be checked on pairs of classes (e.g., same room means any two classes are in the same room), only need to implement this interface.
  GroupConstraint.ConstraintType Group constraint type.
  GroupConstraint.ConstraintTypeInterface Constraint type interface
  GroupConstraint.Flag Group constraint building blocks (individual constraints that need more than `GroupConstraint.PairCheck`)
  GroupConstraint.GroupConstraintContext
  GroupConstraint.ParametrizedConstraintType Constraint type with a parameter
  InstructorConstraint Instructor constraint.
  InstructorConstraint.InstructorConstraintContext
  JenrlConstraint.JenrlConstraintContext
  MinimizeNumberOfUsedGroupsOfTime.MinimizeNumberOfUsedGroupsOfTimeContext
  MinimizeNumberOfUsedRoomsConstraint.MinimizeNumberOfUsedRoomsConstraintContext
  RoomConstraint Room constraint.
  RoomConstraint.RoomConstraintContext
  SpreadConstraint Spread given set of classes in time as much as possible.
  SpreadConstraint.SpreadConstraintContext

- Classes in org.cpsolver.coursett.constraint used by org.cpsolver.coursett.criteria
  Class and Description
  JenrlConstraint Join student enrollment constraint.
  RoomConstraint.RoomConstraintContext

- Classes in org.cpsolver.coursett.constraint used by org.cpsolver.coursett.criteria.additional
  Class and Description
  InstructorConstraint Instructor constraint.
  JenrlConstraint Join student enrollment constraint.

- Classes in org.cpsolver.coursett.constraint used by org.cpsolver.coursett.model
  Class and Description
  ClassLimitConstraint Class limit constraint.
  DepartmentSpreadConstraint Departmental ballancing constraint.
  FlexibleConstraint Flexible constraint.
  GroupConstraint Group constraint.
  InstructorConstraint Instructor constraint.
  JenrlConstraint Join student enrollment constraint.
  RoomConstraint Room constraint.
  SpreadConstraint Spread given set of classes in time as much as possible.