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, iId
sMaxSize
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, unassigned
addConstraintListener, addVariable, assignedVariables, compareTo, computeConflictsNoForwardCheck, constraintListeners, countAssignedVariables, countVariables, equals, getDescription, getId, getModel, hashCode, isHard, removeConstraintListener, removeVariable, variables
public 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)
Constraint
computeConflicts
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)
Constraint
MacPropagation
).inConflict
in class Constraint<Lecture,Placement>
assignment
- current assignmentplacement
- given valuepublic boolean isConsistent(Placement p1, Placement p2)
Constraint
MacPropagation
).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)
HasAssignmentContext
assignment
- an assignment for which there needs to be an assignment context