## Uses of Class
org.cpsolver.coursett.constraint.GroupConstraint

- Packages that use GroupConstraint
  Package | Description
  --- | ---
  org.cpsolver.coursett.constraint | University Course Timetabling: Constraints.
  org.cpsolver.coursett.model | University Course Timetabling: Model.

- - ### Uses of GroupConstraint in org.cpsolver.coursett.constraint

    Methods in org.cpsolver.coursett.constraint with parameters of type GroupConstraint
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | GroupConstraint.AssignmentPairCheck.`isSatisfied(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)` Check whether the constraint is satisfied for the given two assignments (required / preferred case)
    `boolean` | GroupConstraint.ParametrizedConstraintType.`isSatisfied(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)`
    `boolean` | GroupConstraint.ConstraintType.`isSatisfied(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)` True if a required or preferred constraint is satisfied between a pair of placements
    `boolean` | GroupConstraint.AssignmentParameterPairCheck.`isSatisfied(Assignment<Lecture,Placement> assignment, P parameter, GroupConstraint gc, Placement plc1, Placement plc2)` Check whether the constraint is satisfied for the given two assignments (required / preferred case)
    `boolean` | GroupConstraint.PairCheck.`isSatisfied(GroupConstraint gc, Placement plc1, Placement plc2)` Check whether the constraint is satisfied for the given two assignments (required / preferred case)
    `boolean` | GroupConstraint.AssignmentPairCheck.`isViolated(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)` Check whether the constraint is satisfied for the given two assignments (prohibited / discouraged case)
    `boolean` | GroupConstraint.ParametrizedConstraintType.`isViolated(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)`
    `boolean` | GroupConstraint.ConstraintType.`isViolated(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)` True if a prohibited or discouraged constraint is satisfied between a pair of placements
    `boolean` | GroupConstraint.AssignmentParameterPairCheck.`isViolated(Assignment<Lecture,Placement> assignment, P parameter, GroupConstraint gc, Placement plc1, Placement plc2)` Check whether the constraint is satisfied for the given two assignments (prohibited / discouraged case)
    `boolean` | GroupConstraint.PairCheck.`isViolated(GroupConstraint gc, Placement plc1, Placement plc2)` Check whether the constraint is satisfied for the given two assignments (prohibited / discouraged case)

    Method parameters in org.cpsolver.coursett.constraint with type arguments of type GroupConstraint
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | GroupConstraint.`forwardCheck(Assignment<Lecture,Placement> assignment, Placement value, Set<GroupConstraint> ignore, int depth)`
    `void` | GroupConstraint.`forwardCheck(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts, Set<GroupConstraint> ignore, int depth)`

  - ### Uses of GroupConstraint in org.cpsolver.coursett.model

    Methods in org.cpsolver.coursett.model that return types with arguments of type GroupConstraint
    Modifier and Type | Method and Description
    --- | ---
    `Set<GroupConstraint>` | Lecture.`canShareRoomConstraints()`
    `List<GroupConstraint>` | TimetableModel.`getGroupConstraints()` The list of all group constraints
    `Set<GroupConstraint>` | Lecture.`groupConstraints()`
    `Set<GroupConstraint>` | Lecture.`hardGroupSoftConstraints()`