public class Resource extends ConstraintWithContext<Activity,Location,Resource.Context>
Modifier and Type | Class and Description |
---|---|
class |
Resource.Context
Assignment context
|
Modifier and Type | Field and Description |
---|---|
static int |
TYPE_CLASS |
static int |
TYPE_INSTRUCTOR |
static int |
TYPE_OTHER |
static int |
TYPE_ROOM |
iConstraintListeners, iId
sMaxSize
Constructor and Description |
---|
Resource(String id,
int type,
String name) |
Modifier and Type | Method and Description |
---|---|
void |
addDiscouragedSlot(int slot) |
void |
addDiscouragedSlot(int day,
int hour) |
void |
addProhibitedSlot(int slot) |
void |
addProhibitedSlot(int day,
int hour) |
void |
computeConflicts(Assignment<Activity,Location> assignment,
Location location,
Set<Location> conflicts)
The only method which has to be implemented by any constraint.
|
Resource.Context |
createAssignmentContext(Assignment<Activity,Location> assignment)
Create a new assignment context for the given assignment.
|
Set<Integer> |
getDiscouragedSlots() |
String |
getName()
Constraint's name -- for printing purposes
|
Set<Integer> |
getProhibitedSlots() |
String |
getResourceId() |
int |
getType() |
boolean |
inConflict(Assignment<Activity,Location> assignment,
Location location)
Returns true if the given assignment is inconsistent with the existing
assignments respecting this constraint.
|
boolean |
isConsistent(Location l1,
Location l2)
Returns true if the given assignments are consistent respecting this
constraint.
|
boolean |
isDiscouragedSlot(int slot) |
boolean |
isDiscouragedSlot(int day,
int hour) |
boolean |
isProhibited(int day,
int hour,
int length) |
boolean |
isProhibitedSlot(int slot) |
boolean |
isProhibitedSlot(int day,
int hour) |
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 static final int TYPE_ROOM
public static final int TYPE_INSTRUCTOR
public static final int TYPE_CLASS
public static final int TYPE_OTHER
public String getResourceId()
public String getName()
Constraint
getName
in class Constraint<Activity,Location>
public int getType()
public Set<Integer> getProhibitedSlots()
public Set<Integer> getDiscouragedSlots()
public void addProhibitedSlot(int day, int hour)
public void addDiscouragedSlot(int day, int hour)
public boolean isProhibitedSlot(int day, int hour)
public boolean isDiscouragedSlot(int day, int hour)
public void addProhibitedSlot(int slot)
public void addDiscouragedSlot(int slot)
public boolean isProhibitedSlot(int slot)
public boolean isDiscouragedSlot(int slot)
public boolean isProhibited(int day, int hour, int length)
public void computeConflicts(Assignment<Activity,Location> assignment, Location location, Set<Location> conflicts)
Constraint
computeConflicts
in class Constraint<Activity,Location>
assignment
- current assignmentlocation
- value to be assigned to its variableconflicts
- resultant set of conflicting valuespublic boolean inConflict(Assignment<Activity,Location> assignment, Location location)
Constraint
MacPropagation
).inConflict
in class Constraint<Activity,Location>
assignment
- current assignmentlocation
- given valuepublic boolean isConsistent(Location l1, Location l2)
Constraint
MacPropagation
).isConsistent
in class Constraint<Activity,Location>
l1
- a valuel2
- a valuepublic Resource.Context createAssignmentContext(Assignment<Activity,Location> assignment)
HasAssignmentContext
assignment
- an assignment for which there needs to be an assignment context