public class RoomConstraint extends ConstraintWithContext<Lecture,Placement,RoomConstraint.RoomConstraintContext>
| Modifier and Type | Class and Description |
|---|---|
class |
RoomConstraint.RoomConstraintContext |
iConstraintListeners, iIdsMaxSize| Constructor and Description |
|---|
RoomConstraint(Long id,
String name,
Long buildingId,
int capacity,
RoomSharingModel roomSharingModel,
Double x,
Double y,
boolean ignoreTooFar,
boolean constraint)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
addPartition(RoomConstraint room)
Add partition of this room.
|
void |
assigned(Assignment<Lecture,Placement> assignment,
long iteration,
Placement placement)
Given value is to be assigned to its variable.
|
boolean |
checkRoomSize(Placement placement,
Collection<Placement> other) |
boolean |
checkRoomSize(Placement placement,
Collection<Placement> other,
Placement extra) |
void |
computeConflicts(Assignment<Lecture,Placement> assignment,
Placement placement,
Set<Placement> conflicts)
The only method which has to be implemented by any constraint.
|
RoomConstraint.RoomConstraintContext |
createAssignmentContext(Assignment<Lecture,Placement> assignment)
Create a new assignment context for the given assignment.
|
List<Placement>[] |
getAvailableArray() |
Long |
getBuildingId()
Building id
|
int |
getCapacity()
Capacity
|
boolean |
getConstraint() |
boolean |
getIgnoreTooFar() |
String |
getName()
Room name
|
RoomConstraint |
getParentRoom()
If this room is a partition of some other room, returns the parent room (which is partitioned).
|
List<RoomConstraint> |
getPartitions()
If this room is partitioned into multiple rooms, return room partitions
|
Double |
getPosX()
X-position of the building
|
Double |
getPosY()
Y-position of the building
|
List<Placement> |
getResource(Assignment<Lecture,Placement> assignment,
int slot)
Lookup table getResource()[slot] → lecture using this room placed in the
given time slot (null if empty)
|
Long |
getResourceId()
Room id
|
Placement[] |
getResourceOfWeek(Assignment<Lecture,Placement> assignment,
int startDay) |
String |
getRoomName() |
RoomSharingModel |
getSharingModel() |
Long |
getType() |
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(int slot) |
boolean |
isAvailable(Lecture lecture,
TimeLocation time,
Long scheduler) |
boolean |
isConsistent(Placement p1,
Placement p2)
Returns true if the given assignments are consistent respecting this
constraint.
|
void |
setCoordinates(Double x,
Double y)
Position of the building
|
void |
setModel(Model<Lecture,Placement> model)
Sets the model which the constraint belongs to
|
void |
setNotAvailable(Placement placement) |
void |
setType(Long type) |
String |
toString() |
void |
unassigned(Assignment<Lecture,Placement> assignment,
long iteration,
Placement placement)
Given value is unassigned from its variable.
|
getAssignmentContextReference, getContext, getContext, setAssignmentContextReferenceaddConstraintListener, addVariable, assignedVariables, compareTo, computeConflictsNoForwardCheck, constraintListeners, countAssignedVariables, countVariables, equals, getDescription, getId, getModel, hashCode, isHard, removeConstraintListener, removeVariable, variablespublic RoomConstraint(Long id, String name, Long buildingId, int capacity, RoomSharingModel roomSharingModel, Double x, Double y, boolean ignoreTooFar, boolean constraint)
id - room unique idname - room namebuildingId - building unique idcapacity - room sizeroomSharingModel - room sharing modelx - X-coordinate (latitude)y - Y-coordinate (longitude)ignoreTooFar - ignore distances if set to trueconstraint - hard constraint if true (classes cannot overlap in this room)public void setModel(Model<Lecture,Placement> model)
ConstraintsetModel in class ConstraintWithContext<Lecture,Placement,RoomConstraint.RoomConstraintContext>model - problem modelpublic void setNotAvailable(Placement placement)
public boolean isAvailable(int slot)
public boolean isAvailable(Lecture lecture, TimeLocation time, Long scheduler)
public List<Placement>[] getAvailableArray()
public RoomSharingModel getSharingModel()
public void addPartition(RoomConstraint room)
room - room partitionpublic RoomConstraint getParentRoom()
public List<RoomConstraint> getPartitions()
public Long getResourceId()
public Long getBuildingId()
public String getName()
getName in class Constraint<Lecture,Placement>public String getRoomName()
public int getCapacity()
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 checkRoomSize(Placement placement, Collection<Placement> other, Placement extra)
public boolean checkRoomSize(Placement placement, Collection<Placement> other)
public 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 void assigned(Assignment<Lecture,Placement> assignment, long iteration, Placement placement)
Constraintassigned in class ConstraintWithContext<Lecture,Placement,RoomConstraint.RoomConstraintContext>assignment - current assignmentiteration - current iterationplacement - assigned valuepublic void unassigned(Assignment<Lecture,Placement> assignment, long iteration, Placement placement)
Constraintunassigned in class ConstraintWithContext<Lecture,Placement,RoomConstraint.RoomConstraintContext>assignment - current assignmentiteration - current iterationplacement - unassigned valuepublic List<Placement> getResource(Assignment<Lecture,Placement> assignment, int slot)
assignment - current assignmentslot - time slotpublic Placement[] getResourceOfWeek(Assignment<Lecture,Placement> assignment, int startDay)
public void setCoordinates(Double x, Double y)
x - X-coordinate (latitude)y - Y-coordinate (longitude)public boolean getIgnoreTooFar()
public boolean getConstraint()
public RoomConstraint.RoomConstraintContext createAssignmentContext(Assignment<Lecture,Placement> assignment)
HasAssignmentContextassignment - an assignment for which there needs to be an assignment context