Interface Notification<Solution_,T extends AbstractVariableListener<Solution_,Object>>
-
- Type Parameters:
Solution_- the solution type, the class with thePlanningSolutionannotationT- the variable listener type
- All Known Subinterfaces:
BasicVariableNotification<Solution_>,EntityNotification<Solution_>,ListVariableNotification<Solution_>
public interface Notification<Solution_,T extends AbstractVariableListener<Solution_,Object>>A notification represents some kind of change of a planning variable. When a score director is notified about a change, one notification is created for eachNotifiableregistered for the subject of the change. Each implementation is tailored to a specificAbstractVariableListenerand triggers on the listener the pair of "before/after" methods corresponding to the type of change it represents. For example, if there is a shadow variable sourced on theProcess.computergenuine planning variable, then there is a notifiableFregistered for theProcess.computerplanning variable, and it holds a basic variable listenerL. WhenProcess Xis moved fromComputer AtoComputer B, a notificationNis created and added to notifiableF's queue. The notificationNtriggersL.beforeVariableChanged(scoreDirector, Process X)immediately. Later, whenF.triggerAllNotifications()is called,Nis taken from the queue and triggersVariableListener.afterVariableChanged(ai.timefold.solver.core.api.score.director.ScoreDirector<Solution_>, Entity_).
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description static <Solution_>
ListVariableNotification<Solution_>elementUnassigned(Object element)An element was unassigned from a list variable.static <Solution_>
EntityNotification<Solution_>entityAdded(Object entity)Theentitywas added.static <Solution_>
EntityNotification<Solution_>entityRemoved(Object entity)Theentitywas removed.static <Solution_>
ListVariableNotification<Solution_>listVariableChanged(Object entity, int fromIndex, int toIndex)A list variable change occurs onentitybetweenfromIndexandtoIndex.voidtriggerAfter(T variableListener, ScoreDirector<Solution_> scoreDirector)TriggervariableListener's after method corresponding to this notification.voidtriggerBefore(T variableListener, ScoreDirector<Solution_> scoreDirector)TriggervariableListener's before method corresponding to this notification.static <Solution_>
BasicVariableNotification<Solution_>variableChanged(Object entity)Basic genuine or shadow planning variable changed onentity.
-
-
-
Method Detail
-
entityAdded
static <Solution_> EntityNotification<Solution_> entityAdded(Object entity)
Theentitywas added.
-
entityRemoved
static <Solution_> EntityNotification<Solution_> entityRemoved(Object entity)
Theentitywas removed.
-
variableChanged
static <Solution_> BasicVariableNotification<Solution_> variableChanged(Object entity)
Basic genuine or shadow planning variable changed onentity.
-
elementUnassigned
static <Solution_> ListVariableNotification<Solution_> elementUnassigned(Object element)
An element was unassigned from a list variable.
-
listVariableChanged
static <Solution_> ListVariableNotification<Solution_> listVariableChanged(Object entity, int fromIndex, int toIndex)
A list variable change occurs onentitybetweenfromIndexandtoIndex.
-
triggerBefore
void triggerBefore(T variableListener, ScoreDirector<Solution_> scoreDirector)
TriggervariableListener's before method corresponding to this notification.
-
triggerAfter
void triggerAfter(T variableListener, ScoreDirector<Solution_> scoreDirector)
TriggervariableListener's after method corresponding to this notification.
-
-