# Hierarchy For Package org.cpsolver.coursett.constraint

Package Hierarchies:

- All Packages

## Class Hierarchy

- java.lang.Object
  - 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.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.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.coursett.constraint.RoomConstraint
        - org.cpsolver.coursett.constraint.DiscouragedRoomConstraint (implements org.cpsolver.ifs.model.WeakeningConstraint<V,T>)
      - org.cpsolver.coursett.constraint.SpreadConstraint (implements org.cpsolver.ifs.model.WeakeningConstraint<V,T>)
        - org.cpsolver.coursett.constraint.DepartmentSpreadConstraint
    - org.cpsolver.coursett.constraint.IgnoreStudentConflictsConstraint
  - 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.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.constraint.InstructorConstraint.InstructorConstraintContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
    - org.cpsolver.coursett.constraint.SoftInstructorConstraint.SoftInstructorConstraintContext
  - org.cpsolver.coursett.constraint.JenrlConstraint.JenrlConstraintContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
  - 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.coursett.constraint.RoomConstraint.RoomConstraintContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)
    - org.cpsolver.coursett.constraint.DiscouragedRoomConstraint.DiscouragedRoomConstraintContext
  - org.cpsolver.coursett.constraint.SpreadConstraint.SpreadConstraintContext (implements org.cpsolver.ifs.assignment.context.AssignmentConstraintContext<V,T>)

## Interface Hierarchy

- 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

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - org.cpsolver.coursett.constraint.GroupConstraint.Flag
    - org.cpsolver.coursett.constraint.GroupConstraint.ConstraintType (implements org.cpsolver.coursett.constraint.GroupConstraint.ConstraintTypeInterface)
    - org.cpsolver.coursett.constraint.FlexibleConstraint.FlexibleConstraintType