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_>
- All Known Implementing Classes:
ListVariableChangedNotification
Notifiable registered for the subject of the change.
Each implementation is tailored to a specific AbstractVariableListener and 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 the Process.computer genuine planning variable,
then there is a notifiable F registered for the Process.computer planning variable, and it holds a basic
variable listener L.
When Process X is moved from Computer A to Computer B, a notification N is created and added
to notifiable F's queue. The notification N triggers
L.beforeVariableChanged(scoreDirector, Process X) immediately.
Later, when F.triggerAllNotifications() is called, N is taken from
the queue and triggers VariableListener.afterVariableChanged(ai.timefold.solver.core.api.score.director.ScoreDirector<Solution_>, Entity_).
-
Method Summary
Modifier and TypeMethodDescriptionstatic <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_>
ListVariableChangedNotification<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 Details
-
entityAdded
Theentitywas added. -
entityRemoved
Theentitywas removed. -
variableChanged
Basic genuine or shadow planning variable changed onentity. -
elementUnassigned
An element was unassigned from a list variable. -
listVariableChanged
static <Solution_> ListVariableChangedNotification<Solution_> listVariableChanged(Object entity, int fromIndex, int toIndex) A list variable change occurs onentitybetweenfromIndexandtoIndex. -
triggerBefore
TriggervariableListener's before method corresponding to this notification. -
triggerAfter
TriggervariableListener's after method corresponding to this notification.
-