org.cpsolver.studentsct.reservation

## Class CurriculumOverride

- java.lang.Object
- - org.cpsolver.ifs.assignment.context.AbstractClassWithContext<Request,Enrollment,Reservation.ReservationContext>
  - - org.cpsolver.studentsct.reservation.Reservation
    - - org.cpsolver.studentsct.reservation.CurriculumReservation
      - - org.cpsolver.studentsct.reservation.CurriculumOverride

- All Implemented Interfaces:
    Comparable<Reservation>, AssignmentComparable<Reservation,Request,Enrollment>, CanHoldContext, CanInheritContext<Request,Enrollment,Reservation.ReservationContext>, HasAssignmentContext<Request,Enrollment,Reservation.ReservationContext>

      public class CurriculumOverride
      extends CurriculumReservation

  Curriculum reservation override. A special instance of the `CurriculumReservation` for a particular student (or students) that allows for defining whether it must be used, whether time conflicts are allowed, and whether it is allowed to assign the student over the limit. This class is intended to be used to model student curriculum overrides.
  Version:
    StudentSct 1.3 (Student Sectioning)
    Copyright (C) 2007 - 2020 Tomáš Müller
    muller@unitime.org
    http://muller.unitime.org
    This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
    This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
    You should have received a copy of the GNU Lesser General Public License along with this library; if not see http://www.gnu.org/licenses/.
  Author:
    Tomáš Müller

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.cpsolver.studentsct.reservation.Reservation

      `Reservation.ReservationContext`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static boolean` | `DEFAULT_ALLOW_OVERLAP` Overlaps are not allowed for group reservation overrides by default.
    `static boolean` | `DEFAULT_CAN_ASSIGN_OVER_LIMIT` Reservation override cannot be assigned over the limit by default.
    `static boolean` | `DEFAULT_MUST_BE_USED` Reservation override does not need to be used by default
    `static int` | `DEFAULT_PRIORITY` Reservation priority (lower than individual and group reservations)

    - ### Fields inherited from interface org.cpsolver.ifs.assignment.context.CanHoldContext

      `sMaxSize`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CurriculumOverride(long id, double limit, Offering offering, Collection<String> acadAreas, Collection<String> classifications, Collection<String> majors, Collection<String> minors)`
    `CurriculumOverride(long id, double limit, Offering offering, String acadArea, Collection<String> classifications, Collection<String> majors)` Deprecated.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `mustBeUsed()` If true, student must use the reservation (if applicable).

    - ### Methods inherited from class org.cpsolver.studentsct.reservation.CurriculumReservation

      `addConcentration, getAcademicArea, getAcademicAreas, getClassifications, getConcentrations, getMajors, getMinors, getReservationLimit, isApplicable, setReservationLimit`

    - ### Methods inherited from class org.cpsolver.studentsct.reservation.Reservation

      `addConfig, addSection, addSection, areRestrictionsInclusive, canAssignOverLimit, canBatchAssignOverLimit, canBreakLinkedSections, canEnroll, compareTo, compareTo, createAssignmentContext, getConfigs, getEnrollments, getId, getLimit, getLimit, getLimitCap, getLimitCap, getModel, getOffering, getPriority, getReservedAvailableSpace, getReservedAvailableSpace, getRestrictivity, getSections, getSections, inheritAssignmentContext, isAllowDisabled, isAllowOverlap, isExpired, isIncluded, mustBeUsedIgnoreExpiration, neverIncluded, setAllowDisabled, setAllowOverlap, setBreakLinkedSections, setCanAssignOverLimit, setExpired, setMustBeUsed, setNeverIncluded, setPriority`

    - ### Methods inherited from class org.cpsolver.ifs.assignment.context.AbstractClassWithContext

      `getAssignmentContextReference, getContext, getContext, setAssignmentContextReference`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_PRIORITY

          public static final int DEFAULT_PRIORITY

      Reservation priority (lower than individual and group reservations)
      See Also:
        Constant Field Values

    - #### DEFAULT_MUST_BE_USED

          public static final boolean DEFAULT_MUST_BE_USED

      Reservation override does not need to be used by default
      See Also:
        Constant Field Values

    - #### DEFAULT_CAN_ASSIGN_OVER_LIMIT

          public static final boolean DEFAULT_CAN_ASSIGN_OVER_LIMIT

      Reservation override cannot be assigned over the limit by default.
      See Also:
        Constant Field Values

    - #### DEFAULT_ALLOW_OVERLAP

          public static final boolean DEFAULT_ALLOW_OVERLAP

      Overlaps are not allowed for group reservation overrides by default.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### CurriculumOverride

          public CurriculumOverride(long id,
                                    double limit,
                                    Offering offering,
                                    Collection<String> acadAreas,
                                    Collection<String> classifications,
                                    Collection<String> majors,
                                    Collection<String> minors)

    - #### CurriculumOverride

          @Deprecated
          public CurriculumOverride(long id,
                                                double limit,
                                                Offering offering,
                                                String acadArea,
                                                Collection<String> classifications,
                                                Collection<String> majors)

      Deprecated.

  - ### Method Detail

    - #### mustBeUsed

          public boolean mustBeUsed()

      Description copied from class: `Reservation`
      If true, student must use the reservation (if applicable). Expired reservations do not need to be used.
      Overrides:
        `mustBeUsed` in class `Reservation`
      Returns:
        must this reservation be used