V
- VariableT
- ValueC
- Assignment Contextpublic abstract class ModelWithContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentConstraintContext<V,T>> extends Model<V,T> implements HasAssignmentContext<V,T,C>, CanHoldContext
AssignmentConstraintContext
interface). This context is created by calling
HasAssignmentContext.createAssignmentContext(Assignment)
and accessed by
ConstraintWithContext.getContext(Assignment)
.AssignmentContext
Modifier and Type | Class and Description |
---|---|
protected static class |
ModelWithContext.ContextUpdateType
Defines how the context of the model should be automatically updated (i.e., when
AssignmentConstraintContext.assigned(Assignment, Value) and AssignmentConstraintContext.unassigned(Assignment, Value) are called). |
sDoubleFormat, sPercentageFormat, sTimeFormat
sMaxSize
Constructor and Description |
---|
ModelWithContext() |
Modifier and Type | Method and Description |
---|---|
void |
afterAssigned(Assignment<V,T> assignment,
long iteration,
T value)
Called after a value is assigned to its variable
|
void |
afterUnassigned(Assignment<V,T> assignment,
long iteration,
T value)
Called after a value is unassigned from its variable
|
void |
beforeAssigned(Assignment<V,T> assignment,
long iteration,
T value)
Called before a value is assigned to its variable
|
void |
beforeUnassigned(Assignment<V,T> assignment,
long iteration,
T value)
Called before a value is unassigned from its variable
|
AssignmentContextReference<V,T,C> |
getAssignmentContextReference()
Returns an assignment context reference
|
AssignmentContext[] |
getContext()
An array of
CanHoldContext.sMaxSize assignment contexts |
C |
getContext(Assignment<V,T> assignment)
Returns an assignment context associated with this model.
|
ModelWithContext.ContextUpdateType |
getContextUpdateType() |
void |
setAssignmentContextReference(AssignmentContextReference<V,T,C> reference)
Store an assignment context reference that was given for the class by the
Model.createReference(HasAssignmentContext) . |
void |
setContextUpdateType(ModelWithContext.ContextUpdateType iContextUpdateType) |
addConstraint, addCriterion, addGlobalConstraint, addModelListener, addVariable, afterAssigned, afterUnassigned, assignedVariables, assignedVariables, beforeAssigned, beforeUnassigned, bestUnassignedVariables, bestUnassignedVariables, clearAssignmentContexts, clearBest, conflictConstraints, conflictValues, conflictValues, constraints, countConstraints, countGlobalConstraints, countVariables, createAssignmentContexts, createInheritedAssignment, createReference, getBestPerturbations, getBestUnassignedVariables, getBestValue, getCriteria, getCriterion, getDefaultAssignment, getEmptyAssignment, getExtendedInfo, getExtendedInfo, getInfo, getInfo, getInfo, getInfo, getInfoProviders, getModelListeners, getPerc, getPercRev, getTotalValue, getTotalValue, getTotalValue, getTotalValue, globalConstraints, inConflict, inConflict, init, invalidateVariablesWithInitialValueCache, modelListenerOfType, nrAssignedVariables, nrAssignedVariables, nrUnassignedVariables, nrUnassignedVariables, perturbVariables, perturbVariables, perturbVariables, perturbVariables, perturbVariables, removeConstraint, removeCriterion, removeCriterion, removeGlobalConstraint, removeModelListener, removeReference, removeVariable, restoreBest, restoreBest, restoreBest, saveBest, saveBest, setBestValue, setDefaultAssignment, toString, toString, unassignedHardConstraints, unassignedVariables, unassignedVariables, variables, variablesWithInitialValue, weaken
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
createAssignmentContext
public ModelWithContext()
public C getContext(Assignment<V,T> assignment)
HasAssignmentContext.createAssignmentContext(Assignment)
method. From that time on,
this context is kept with the assignment and automatically updated by calling the
AssignmentConstraintContext.assigned(Assignment, Value)
and AssignmentConstraintContext.unassigned(Assignment, Value)
whenever a variable is changed.getContext
in interface HasAssignmentContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentConstraintContext<V,T>>
assignment
- given assignmentpublic AssignmentContextReference<V,T,C> getAssignmentContextReference()
HasAssignmentContext
getAssignmentContextReference
in interface HasAssignmentContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentConstraintContext<V,T>>
Model.createReference(HasAssignmentContext)
during initializationpublic void setAssignmentContextReference(AssignmentContextReference<V,T,C> reference)
HasAssignmentContext
Model.createReference(HasAssignmentContext)
.setAssignmentContextReference
in interface HasAssignmentContext<V extends Variable<V,T>,T extends Value<V,T>,C extends AssignmentConstraintContext<V,T>>
reference
- reference provided by the model by calling Model.createReference(HasAssignmentContext)
during initializationpublic AssignmentContext[] getContext()
CanHoldContext
CanHoldContext.sMaxSize
assignment contextsgetContext
in interface CanHoldContext
public void beforeUnassigned(Assignment<V,T> assignment, long iteration, T value)
Model
public void afterUnassigned(Assignment<V,T> assignment, long iteration, T value)
Model
public void afterAssigned(Assignment<V,T> assignment, long iteration, T value)
Model
public void beforeAssigned(Assignment<V,T> assignment, long iteration, T value)
Model
public ModelWithContext.ContextUpdateType getContextUpdateType()
public void setContextUpdateType(ModelWithContext.ContextUpdateType iContextUpdateType)