public class CourseRequest extends Request
Request.RequestContext| Modifier and Type | Field and Description |
|---|---|
static boolean |
sSameTimePrecise |
sCacheValuessMaxSize| Constructor and Description |
|---|
CourseRequest(long id,
int priority,
boolean alternative,
Student student,
List<Course> courses,
boolean waitlist,
Long timeStamp)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
addRequestGroup(RequestGroup group)
Add request group to this request.
|
void |
clearCache()
Clear cached min/max penalties and cached bound
|
void |
clearReservationCache()
Clear reservation information that was cached on this section
|
List<Enrollment> |
computeEnrollments(Assignment<Request,Enrollment> assignment)
Return all possible enrollments.
|
List<Enrollment> |
computeRandomEnrollments(Assignment<Request,Enrollment> assignment,
int limitEachConfig)
Return a subset of all enrollments -- randomly select only up to
limitEachConfig enrollments of each config.
|
Enrollment |
createEnrollment(Assignment<Request,Enrollment> assignment,
Set<? extends SctAssignment> sections)
Create enrollment for the given list of sections.
|
Enrollment |
createEnrollment(Set<? extends SctAssignment> sections,
Reservation reservation)
Create enrollment for the given list of sections.
|
boolean |
equals(Object o) |
List<Enrollment> |
getAvaiableEnrollments(Assignment<Request,Enrollment> assignment)
Return all enrollments that are available
|
List<Enrollment> |
getAvaiableEnrollmentsSkipSameTime(Assignment<Request,Enrollment> assignment)
Return all enrollments that are available, pick only the first section of
the sections with the same time (of each subpart,
Section
comparator is used) |
double |
getBound()
Estimated bound for this request -- it estimates the smallest value among
all possible enrollments
|
Config |
getConfig(long configId)
Return configuration of the requested courses with the given id
|
Course |
getCourse(long courseId)
Return course of the requested courses with the given id
|
List<Course> |
getCourses()
List of requested courses (in the correct order -- first is the requested
course, second is the first alternative, etc.)
|
List<Enrollment> |
getEnrollmentsSkipSameTime(Assignment<Request,Enrollment> assignment)
Return all possible enrollments, but pick only the first section of
the sections with the same time (of each subpart,
Section
comparator is used). |
protected int |
getMaxDomainSize()
Maximal domain size (i.e., number of enrollments of a course request), -1 if there is no limit.
|
double |
getMaxPenalty()
Maximal penalty (maximum of
Offering.getMaxPenalty() among
requested courses) |
double |
getMinPenalty()
Minimal penalty (minimum of
Offering.getMinPenalty() among
requested courses) |
String |
getName()
Request name: A for alternative, 1 + priority, (w) when wait-list, list of
course names
|
Set<RequestGroup> |
getRequestGroups()
Lists request groups of this request
|
List<Reservation> |
getReservations(Course course)
Get reservations for this course requests
|
Section |
getSection(long sectionId)
Return section of the requested courses with the given id
|
Set<Choice> |
getSelectedChoices()
Selected choices
|
List<Enrollment> |
getSelectedEnrollments(Assignment<Request,Enrollment> assignment,
boolean availableOnly)
Return all enrollments that are selected (
isSelected(Section) is true) |
TreeSet<Reservation> |
getSortedReservations(Assignment<Request,Enrollment> assignment,
Course course)
Get reservations for this course requests ordered using
Reservation.compareTo(Assignment, Reservation) |
Subpart |
getSubpart(long subpartId)
Return subpart of the requested courses with the given id
|
Long |
getTimeStamp()
Time stamp of the request
|
Set<Choice> |
getWaitlistedChoices()
Wait-listed choices
|
boolean |
hasReservations()
Return true if there is a reservation for a course of this request
|
boolean |
hasSelection()
Return true if this request has any selection
|
boolean |
isAssigned(Assignment<Request,Enrollment> assignment)
Return true if request is assigned.
|
boolean |
isMPP()
Return true if this request can track MPP
|
boolean |
isSelected(Section section)
Return true when the given section is selected (i.e., its choice is among
selected choices)
|
boolean |
isWaitlist()
True if the student can be put on a wait-list (no alternative course
request will be given instead)
|
boolean |
isWaitlisted(Section section)
Return true when the given section is wait-listed (i.e., its choice is
among wait-listed choices)
|
void |
removeRequestGroup(RequestGroup group)
Removed request group from this request.
|
void |
setWaitlist(boolean waitlist)
True if the student can be put on a wait-list (no alternative course
request will be given instead)
|
String |
toString() |
void |
variableAssigned(Assignment<Request,Enrollment> assignment,
long iteration,
Enrollment enrollment)
Assign given enrollment to this request.
|
void |
variableUnassigned(Assignment<Request,Enrollment> assignment,
long iteration,
Enrollment enrollment)
Unassign currently assigned enrollment from this request.
|
compareTo, createAssignmentContext, getId, getPriority, getStudent, getWeight, hashCode, isAlternative, setPriority, setWeight, valuesgetAssignmentContextReference, getContext, getContext, setAssignmentContextReference, setModeladdContstraint, addVariableListener, assign, constraints, constraintVariables, getAssignment, getAssignment, getAssignments, getBestAssignment, getBestAssignmentIteration, getDescription, getExtra, getIndex, getInitialAssignment, getLastIteration, getModel, getVariableListeners, hardConstraints, hasAssignment, hasAssignment, hasInitialAssignment, hasValues, removeContstraint, removeInitialValue, removeValue, removeVariableListener, setAssignment, setBestAssignment, setExtra, setIndex, setInitialAssignment, setLastIteration, setValues, softConstraints, unassign, valuespublic static boolean sSameTimePrecise
public CourseRequest(long id, int priority, boolean alternative, Student student, List<Course> courses, boolean waitlist, Long timeStamp)
id - request unique idpriority - request priorityalternative - true if the request is alternative (alternative request can be
assigned instead of a non-alternative course requests, if it
is left unassigned)student - appropriate studentcourses - list of requested courses (in the correct order -- first is
the requested course, second is the first alternative, etc.)waitlist - time stamp of the request if the student can be put on a wait-list (no alternative
course request will be given instead)timeStamp - request time stamppublic List<Course> getCourses()
public Enrollment createEnrollment(Set<? extends SctAssignment> sections, Reservation reservation)
sections - selected sectionsreservation - selected reservationpublic Enrollment createEnrollment(Assignment<Request,Enrollment> assignment, Set<? extends SctAssignment> sections)
assignment - current assignment (to guess the reservation)sections - selected sectionsprotected int getMaxDomainSize()
public List<Enrollment> computeEnrollments(Assignment<Request,Enrollment> assignment)
computeEnrollments in class Requestassignment - current assignmentpublic List<Enrollment> computeRandomEnrollments(Assignment<Request,Enrollment> assignment, int limitEachConfig)
assignment - current assignmentlimitEachConfig - maximal number of enrollments in each configurationpublic List<Enrollment> getAvaiableEnrollments(Assignment<Request,Enrollment> assignment)
assignment - current assignmentpublic List<Enrollment> getSelectedEnrollments(Assignment<Request,Enrollment> assignment, boolean availableOnly)
isSelected(Section) is true)assignment - current assignmentavailableOnly - pick only available sectionspublic List<Enrollment> getAvaiableEnrollmentsSkipSameTime(Assignment<Request,Enrollment> assignment)
Section
comparator is used)assignment - current assignmentpublic List<Enrollment> getEnrollmentsSkipSameTime(Assignment<Request,Enrollment> assignment)
Section
comparator is used).assignment - current assignmentpublic Set<Choice> getWaitlistedChoices()
public boolean isWaitlisted(Section section)
section - given sectionpublic Set<Choice> getSelectedChoices()
public boolean isSelected(Section section)
section - given sectionpublic String getName()
getName in class Variable<Request,Enrollment>public boolean isWaitlist()
public void setWaitlist(boolean waitlist)
waitlist - true if the request can be wait-listedpublic Long getTimeStamp()
public Course getCourse(long courseId)
courseId - course offering idpublic Config getConfig(long configId)
configId - instructional offering configuration unique idpublic Subpart getSubpart(long subpartId)
subpartId - scheduling subpart unique idpublic Section getSection(long sectionId)
sectionId - class unique idpublic double getMinPenalty()
Offering.getMinPenalty() among
requested courses)public double getMaxPenalty()
Offering.getMaxPenalty() among
requested courses)public void clearCache()
public double getBound()
public boolean isAssigned(Assignment<Request,Enrollment> assignment)
isAssigned in class Requestassignment - current assignmentpublic List<Reservation> getReservations(Course course)
course - given coursepublic TreeSet<Reservation> getSortedReservations(Assignment<Request,Enrollment> assignment, Course course)
Reservation.compareTo(Assignment, Reservation)course - given coursepublic boolean hasReservations()
public void clearReservationCache()
public boolean isMPP()
public boolean hasSelection()
hasSelection in class Requestpublic void addRequestGroup(RequestGroup group)
group - request group to be addedpublic void removeRequestGroup(RequestGroup group)
group - request group to be removedpublic Set<RequestGroup> getRequestGroups()
public void variableAssigned(Assignment<Request,Enrollment> assignment, long iteration, Enrollment enrollment)
RequestSctAssignment.assigned(Assignment, Enrollment) on for all the assignments of the
enrollment.variableAssigned in class Requestassignment - current assignmentiteration - current iterationenrollment - assigned valuepublic void variableUnassigned(Assignment<Request,Enrollment> assignment, long iteration, Enrollment enrollment)
RequestSctAssignment.unassigned(Assignment, Enrollment) on for all the
assignments of the current enrollment.variableUnassigned in class Requestassignment - current assignmentiteration - current iterationenrollment - unassigned valueCopyright © 2017 UniTime LLC. All Rights Reserved.