org.cpsolver.studentsct.extension

## Interface StudentQuality.Quality

- Enclosing class:
    StudentQuality

      public static interface StudentQuality.Quality

  Schedule quality interface

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `getWeight(StudentQuality.Context cx, StudentQuality.Conflict c, Enrollment e)` Base weight of the given conflict and enrollment.
    `boolean` | `inConflict(StudentQuality.Context cx, SctAssignment a1, SctAssignment a2)` When applicable, is there a conflict between two sections
    `boolean` | `isApplicable(StudentQuality.Context cx, Student student, Request r1, Request r2)` Check if the metric is applicable for the given student, between the given two requests
    `Iterable<? extends SctAssignment>` | `other(StudentQuality.Context cx, Enrollment e)` Enumerate other section assignments applicable for the given enrollment (e.g., student unavailabilities)
    `int` | `penalty(StudentQuality.Context cx, Student s, SctAssignment a1, SctAssignment a2)` When in conflict, what is the penalisation

- - ### Method Detail

    - #### isApplicable

          boolean isApplicable(StudentQuality.Context cx,
                               Student student,
                               Request r1,
                               Request r2)

      Check if the metric is applicable for the given student, between the given two requests

    - #### inConflict

          boolean inConflict(StudentQuality.Context cx,
                             SctAssignment a1,
                             SctAssignment a2)

      When applicable, is there a conflict between two sections

    - #### penalty

          int penalty(StudentQuality.Context cx,
                      Student s,
                      SctAssignment a1,
                      SctAssignment a2)

      When in conflict, what is the penalisation

    - #### other

          Iterable<? extends SctAssignment> other(StudentQuality.Context cx,
                                                  Enrollment e)

      Enumerate other section assignments applicable for the given enrollment (e.g., student unavailabilities)

    - #### getWeight

          double getWeight(StudentQuality.Context cx,
                           StudentQuality.Conflict c,
                           Enrollment e)

      Base weight of the given conflict and enrollment. Typically based on the `StudentQuality.Conflict.getPenalty()`, but change to be between 0.0 and 1.0. For example, for time conflicts, a percentage of share is used.