org.cpsolver.coursett.model

## Class Student

- java.lang.Object
- - org.cpsolver.coursett.model.Student

- All Implemented Interfaces:
    Comparable<Student>

      public class Student
      extends Object
      implements Comparable<Student>

  Student.
  Version:
    CourseTT 1.3 (University Course Timetabling)
    Copyright (C) 2006 - 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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static boolean` | `USE_DISTANCE_CACHE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Student(Long studentId)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAlternatives(Long offeringId1, Long offeringId2)`
    `void` | `addCanNotEnroll(Lecture lecture)`
    `void` | `addCanNotEnroll(Long offeringId, Collection<Lecture> lectures)`
    `void` | `addCommitedPlacement(Placement placement)`
    `void` | `addConfiguration(Configuration config)`
    `void` | `addGroup(StudentGroup group)`
    `void` | `addLecture(Lecture lecture)`
    `void` | `addOffering(Long offeringId, double weight)`
    `void` | `addOffering(Long offeringId, double weight, Double priority)`
    `boolean` | `areAlternatives(Configuration c1, Configuration c2)`
    `boolean` | `areAlternatives(Lecture l1, Lecture l2)`
    `boolean` | `areAlternatives(Long offeringId1, Long offeringId2)`
    `double` | `avg(double w1, double w2)`
    `boolean` | `canEnroll(Configuration config)`
    `boolean` | `canEnroll(Lecture lecture)`
    `Map<Long,Set<Lecture>>` | `canNotEnrollSections()`
    `boolean` | `canUnenroll(Lecture lecture)`
    `void` | `clearDistanceCache()`
    `int` | `compareTo(Student s)`
    `Set<Placement>` | `conflictPlacements(Placement placement)`
    `int` | `countConflictPlacements(Placement placement)`
    `boolean` | `equals(Object o)`
    `String` | `getAcademicArea()`
    `String` | `getAcademicClassification()`
    `Long` | `getAlternative(Long offeringId)`
    `Set<Placement>` | `getCommitedPlacements()`
    `Set<Configuration>` | `getConfigurations()`
    `Double` | `getConflictingPriorty(Lecture l1, Lecture l2)`
    `String` | `getCurriculum()`
    `double` | `getDistance(Student student)`
    `String` | `getGroupNames()`
    `Set<StudentGroup>` | `getGroups()`
    `Long` | `getId()`
    `InstructorConstraint` | `getInstructor()`
    `double` | `getJenrlWeight(Lecture l1, Lecture l2)`
    `Set<Lecture>` | `getLectures()`
    `String` | `getMajor()`
    `Set<Long>` | `getOfferings()`
    `Map<Long,Double>` | `getOfferingsMap()`
    `double` | `getOfferingWeight(Configuration configuration)`
    `double` | `getOfferingWeight(Long offeringId)`
    `Double` | `getPriority(Configuration configuration)`
    `Double` | `getPriority(Lecture lecture)`
    `Double` | `getPriority(Long offeringId)` Priority of an offering (for the student).
    `double` | `getSameGroupWeight(Student other)`
    `boolean` | `hasGroup(StudentGroup group)`
    `int` | `hashCode()`
    `boolean` | `hasOffering(Long offeringId)`
    `void` | `removeConfiguration(Configuration config)`
    `void` | `removeLecture(Lecture lecture)`
    `void` | `setAcademicArea(String acadArea)`
    `void` | `setAcademicClassification(String acadClasf)`
    `void` | `setCurriculum(String curriculum)`
    `void` | `setInstructor(InstructorConstraint instructor)`
    `void` | `setMajor(String major)`
    `String` | `toString()`

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### USE_DISTANCE_CACHE

          public static boolean USE_DISTANCE_CACHE

  - ### Constructor Detail

    - #### Student

          public Student(Long studentId)

  - ### Method Detail

    - #### addOffering

          public void addOffering(Long offeringId,
                                  double weight,
                                  Double priority)

    - #### addOffering

          public void addOffering(Long offeringId,
                                  double weight)

    - #### getOfferingsMap

          public Map<Long,Double> getOfferingsMap()

    - #### getOfferings

          public Set<Long> getOfferings()

    - #### hasOffering

          public boolean hasOffering(Long offeringId)

    - #### getInstructor

          public InstructorConstraint getInstructor()

    - #### setInstructor

          public void setInstructor(InstructorConstraint instructor)

    - #### getPriority

          public Double getPriority(Long offeringId)

      Priority of an offering (for the student). Null if not used, or between zero (no priority) and one (highest priority)
      Parameters:
        `offeringId` - instructional offering unique id
      Returns:
        student's priority

    - #### getPriority

          public Double getPriority(Configuration configuration)

    - #### getPriority

          public Double getPriority(Lecture lecture)

    - #### getConflictingPriorty

          public Double getConflictingPriorty(Lecture l1,
                                              Lecture l2)

    - #### getOfferingWeight

          public double getOfferingWeight(Configuration configuration)

    - #### getOfferingWeight

          public double getOfferingWeight(Long offeringId)

    - #### canUnenroll

          public boolean canUnenroll(Lecture lecture)

    - #### canEnroll

          public boolean canEnroll(Lecture lecture)

    - #### canEnroll

          public boolean canEnroll(Configuration config)

    - #### addCanNotEnroll

          public void addCanNotEnroll(Lecture lecture)

    - #### addCanNotEnroll

          public void addCanNotEnroll(Long offeringId,
                                      Collection<Lecture> lectures)

    - #### canNotEnrollSections

          public Map<Long,Set<Lecture>> canNotEnrollSections()

    - #### addLecture

          public void addLecture(Lecture lecture)

    - #### removeLecture

          public void removeLecture(Lecture lecture)

    - #### getLectures

          public Set<Lecture> getLectures()

    - #### addConfiguration

          public void addConfiguration(Configuration config)

    - #### removeConfiguration

          public void removeConfiguration(Configuration config)

    - #### getConfigurations

          public Set<Configuration> getConfigurations()

    - #### getId

          public Long getId()

    - #### getDistance

          public double getDistance(Student student)

    - #### clearDistanceCache

          public void clearDistanceCache()

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### compareTo

          public int compareTo(Student s)

      Specified by:
        `compareTo` in interface `Comparable<Student>`

    - #### equals

          public boolean equals(Object o)

      Overrides:
        `equals` in class `Object`

    - #### addCommitedPlacement

          public void addCommitedPlacement(Placement placement)

    - #### getCommitedPlacements

          public Set<Placement> getCommitedPlacements()

    - #### conflictPlacements

          public Set<Placement> conflictPlacements(Placement placement)

    - #### countConflictPlacements

          public int countConflictPlacements(Placement placement)

    - #### getJenrlWeight

          public double getJenrlWeight(Lecture l1,
                                       Lecture l2)

    - #### addAlternatives

          public void addAlternatives(Long offeringId1,
                                      Long offeringId2)

    - #### areAlternatives

          public boolean areAlternatives(Lecture l1,
                                         Lecture l2)

    - #### areAlternatives

          public boolean areAlternatives(Configuration c1,
                                         Configuration c2)

    - #### areAlternatives

          public boolean areAlternatives(Long offeringId1,
                                         Long offeringId2)

    - #### getAlternative

          public Long getAlternative(Long offeringId)

    - #### avg

          public double avg(double w1,
                            double w2)

    - #### getAcademicArea

          public String getAcademicArea()

    - #### setAcademicArea

          public void setAcademicArea(String acadArea)

    - #### getAcademicClassification

          public String getAcademicClassification()

    - #### setAcademicClassification

          public void setAcademicClassification(String acadClasf)

    - #### getMajor

          public String getMajor()

    - #### setMajor

          public void setMajor(String major)

    - #### getCurriculum

          public String getCurriculum()

    - #### setCurriculum

          public void setCurriculum(String curriculum)

    - #### addGroup

          public void addGroup(StudentGroup group)

    - #### getGroups

          public Set<StudentGroup> getGroups()

    - #### hasGroup

          public boolean hasGroup(StudentGroup group)

    - #### getGroupNames

          public String getGroupNames()

    - #### getSameGroupWeight

          public double getSameGroupWeight(Student other)