public class InstructorConstraint extends ConstraintWithContext<Lecture,Placement,InstructorConstraint.InstructorConstraintContext>
DistanceMetric.getInstructorNoPreferenceLimit() .. no preference
DistanceMetric.getInstructorNoPreferenceLimit() and below
DistanceMetric.getInstructorDiscouragedLimit() .. constraint is
discouraged (soft, preference = 1)
DistanceMetric.getInstructorDiscouragedLimit() and below
DistanceMetric.getInstructorProhibitedLimit() .. constraint is
strongly discouraged (soft, preference = 2)
DistanceMetric.getInstructorProhibitedLimit() .. constraint is
prohibited (hard)
isIgnoreDistances() is set to true, the
constraint never prohibits two back-to-back classes (but it still tries to
minimize the above back-to-back preferences).| Modifier and Type | Class and Description |
|---|---|
class |
InstructorConstraint.InstructorConstraintContext |
iConstraintListeners, iIdsMaxSize| Constructor and Description |
|---|
InstructorConstraint(Long id,
String puid,
String name,
boolean ignDist)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
computeConflicts(Assignment<Lecture,Placement> assignment,
Placement placement,
Set<Placement> conflicts)
The only method which has to be implemented by any constraint.
|
InstructorConstraint.InstructorConstraintContext |
createAssignmentContext(Assignment<Lecture,Placement> assignment)
Create a new assignment context for the given assignment.
|
List<Placement>[] |
getAvailableArray()
Deprecated.
|
protected DistanceMetric |
getDistanceMetric() |
int |
getDistancePreference(Placement p1,
Placement p2)
Back-to-back preference of two placements (3 means prohibited)
|
String |
getName()
Resource name
|
int |
getPreference(Assignment<Lecture,Placement> assignment) |
int |
getPreference(Assignment<Lecture,Placement> assignment,
Placement value)
Back-to-back preference of the given placement
|
int |
getPreferenceCombination(Assignment<Lecture,Placement> assignment,
Placement value) |
String |
getPuid() |
Long |
getResourceId()
Resource id
|
Long |
getType() |
List<Placement> |
getUnavailabilities() |
int |
getWorstPreference()
Worst back-to-back preference of this instructor
|
boolean |
inConflict(Assignment<Lecture,Placement> assignment,
Placement placement)
Returns true if the given assignment is inconsistent with the existing
assignments respecting this constraint.
|
boolean |
isAvailable(Lecture lecture,
Placement placement) |
boolean |
isAvailable(Lecture lecture,
TimeLocation time) |
boolean |
isConsistent(Placement p1,
Placement p2)
Returns true if the given assignments are consistent respecting this
constraint.
|
boolean |
isIgnoreDistances() |
void |
setIgnoreDistances(boolean ignDist) |
void |
setNotAvailable(Placement placement) |
void |
setType(Long type) |
String |
toString() |
assigned, getAssignmentContextReference, getContext, getContext, setAssignmentContextReference, setModel, unassignedaddConstraintListener, addVariable, assignedVariables, compareTo, computeConflictsNoForwardCheck, constraintListeners, countAssignedVariables, countVariables, equals, getDescription, getId, getModel, hashCode, isHard, removeConstraintListener, removeVariable, variablespublic InstructorConstraint(Long id, String puid, String name, boolean ignDist)
id - instructor idpuid - instructor external idname - instructor nameignDist - true if distance conflicts are to be ignoredpublic void setNotAvailable(Placement placement)
public boolean isAvailable(Lecture lecture, TimeLocation time)
protected DistanceMetric getDistanceMetric()
public boolean isAvailable(Lecture lecture, Placement placement)
public List<Placement> getUnavailabilities()
@Deprecated public List<Placement>[] getAvailableArray()
public int getDistancePreference(Placement p1, Placement p2)
p1 - first placementp2 - second placementpublic Long getResourceId()
public String getName()
getName in class Constraint<Lecture,Placement>public void computeConflicts(Assignment<Lecture,Placement> assignment, Placement placement, Set<Placement> conflicts)
ConstraintcomputeConflicts in class Constraint<Lecture,Placement>assignment - current assignmentplacement - value to be assigned to its variableconflicts - resultant set of conflicting valuespublic boolean inConflict(Assignment<Lecture,Placement> assignment, Placement placement)
ConstraintMacPropagation).inConflict in class Constraint<Lecture,Placement>assignment - current assignmentplacement - given valuepublic boolean isConsistent(Placement p1, Placement p2)
ConstraintMacPropagation).isConsistent in class Constraint<Lecture,Placement>p1 - a valuep2 - a valuepublic int getPreference(Assignment<Lecture,Placement> assignment, Placement value)
assignment - current assignmentvalue - placement under considerationpublic int getPreference(Assignment<Lecture,Placement> assignment)
public int getPreferenceCombination(Assignment<Lecture,Placement> assignment, Placement value)
public int getWorstPreference()
public boolean isIgnoreDistances()
public void setIgnoreDistances(boolean ignDist)
public InstructorConstraint.InstructorConstraintContext createAssignmentContext(Assignment<Lecture,Placement> assignment)
HasAssignmentContextassignment - an assignment for which there needs to be an assignment context