org.cpsolver.studentsct.check

## Class CourseLimitCheck

- java.lang.Object
- - org.cpsolver.studentsct.check.CourseLimitCheck

-     public class CourseLimitCheck
      extends Object

  This class looks and reports cases when there are more students requesting a course than the course limit.
  Usage:

            CourseLimitCheck ch = new CourseLimitCheck(model);
            if (!ch.check()) ch.getCSVFile().save(new File("limits.csv"));

  Parameters:

  Related Solver Parameters
  Parameter | Type | Comment
  --- | --- | ---
  CourseLimitCheck.FixUnlimited | `Boolean` | If true, courses with zero or positive limit, but with unlimited sections, are made unlimited (course limit is set to -1).
  CourseLimitCheck.UpZeroLimits | `Boolean` | If true, courses with zero limit, requested by one or more students are increased in limit in order to accomodate all students that request the course. Section limits are increased to ( total weight of all requests for the offering / sections in subpart).
  CourseLimitCheck.UpNonZeroLimits | `Boolean` | If true, courses with positive limit, requested by more students than allowed by the limit are increased in limit in order to accomodate all students that requests the course. Section limits are increased proportionally by ( total weight of all requests in the offering / current offering limit), where offering limit is the sum of limits of courses of the offering.

  Version:
    StudentSct 1.3 (Student Sectioning)
    Copyright (C) 2007 - 2014 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

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CourseLimitCheck(StudentSectioningModel model)` Constructor

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `check()` Check for courses where the limit is below the number of students that request the course
    `CSVFile` | `getCSVFile()` Return report
    `StudentSectioningModel` | `getModel()` Return student sectioning model

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

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

- - ### Constructor Detail

    - #### CourseLimitCheck

          public CourseLimitCheck(StudentSectioningModel model)

      Constructor
      Parameters:
        `model` - student sectioning model

  - ### Method Detail

    - #### getModel

          public StudentSectioningModel getModel()

      Return student sectioning model
      Returns:
        problem model

    - #### getCSVFile

          public CSVFile getCSVFile()

      Return report
      Returns:
        generated report

    - #### check

          public boolean check()

      Check for courses where the limit is below the number of students that request the course
      Returns:
        false, if there is such a case