Class AbstractUndoMove<Solution_>
- Type Parameters:
Solution_- the solution type, the class with thePlanningSolutionannotation
- All Implemented Interfaces:
Move<Solution_>
Move, suggested starting point to implement undo moves.- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionDeprecated, for removal: This API element is subject to removal in a future version. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractUndoMove(Move<Solution_> parentMove) Deprecated, for removal: This API element is subject to removal in a future version. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract voiddoMoveOnGenuineVariables(ScoreDirector<Solution_> scoreDirector) Deprecated, for removal: This API element is subject to removal in a future version.LikedoMoveOnly(ScoreDirector)but without theScoreDirector.triggerVariableListeners()call (becausedoMoveOnly(ScoreDirector)already does that).final voiddoMoveOnly(ScoreDirector<Solution_> scoreDirector) Deprecated, for removal: This API element is subject to removal in a future version.Does the move (which indirectly affects theScoreDirector.getWorkingSolution()).final Collection<?>Deprecated, for removal: This API element is subject to removal in a future version.Returns all planning entities that are being changed by this move.final Collection<?>Deprecated, for removal: This API element is subject to removal in a future version.Returns all planning values that entities are being assigned to by this move.Deprecated, for removal: This API element is subject to removal in a future version.Describes the move type for statistical purposes.final booleanisMoveDoable(ScoreDirector<Solution_> scoreDirector) Deprecated, for removal: This API element is subject to removal in a future version.Called before a move is evaluated to decide whether the move can be done and evaluated.toString()Deprecated, for removal: This API element is subject to removal in a future version.
-
Field Details
-
parentMove
Deprecated, for removal: This API element is subject to removal in a future version.
-
-
Constructor Details
-
AbstractUndoMove
Deprecated, for removal: This API element is subject to removal in a future version.
-
-
Method Details
-
isMoveDoable
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:MoveCalled before a move is evaluated to decide whether the move can be done and evaluated. A Move is not doable if:- Either doing it would change nothing in the
PlanningSolution. - Either it's simply not possible to do (for example due to built-in hard constraints).
It is recommended to keep this method implementation simple: do not use it in an attempt to satisfy normal hard and soft constraints.
Although you could also filter out non-doable moves in for example the
MoveSelectororMoveListFactory, this is not needed as theSolverwill do it for you.- Specified by:
isMoveDoablein interfaceMove<Solution_>- Parameters:
scoreDirector- theScoreDirectornot yet modified by the move.- Returns:
- true if the move achieves a change in the solution and the move is possible to do on the solution.
- Either doing it would change nothing in the
-
doMoveOnly
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:MoveDoes the move (which indirectly affects theScoreDirector.getWorkingSolution()). When theworking solutionis modified, theScoreDirectormust be correctly notified (throughScoreDirector.beforeVariableChanged(Object, String)andScoreDirector.afterVariableChanged(Object, String)), otherwise later calculatedScores will be corrupted, or the move may not be correctly undone.This method must end with calling
ScoreDirector.triggerVariableListeners()to ensure all shadow variables are updated.- Specified by:
doMoveOnlyin interfaceMove<Solution_>- Parameters:
scoreDirector- never null, theScoreDirectorthat needs to get notified of the changes
-
doMoveOnGenuineVariables
Deprecated, for removal: This API element is subject to removal in a future version.LikedoMoveOnly(ScoreDirector)but without theScoreDirector.triggerVariableListeners()call (becausedoMoveOnly(ScoreDirector)already does that).- Parameters:
scoreDirector- never null
-
getPlanningEntities
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:MoveReturns all planning entities that are being changed by this move. Required forAcceptorType.ENTITY_TABU.This method is only called after
Move.doMoveOnly(ScoreDirector)(which might affect the return values).Duplicate entries in the returned
Collectionare best avoided. The returnedCollectionis recommended to be in a stable order. For example: useListorLinkedHashSet, but notHashSet.- Specified by:
getPlanningEntitiesin interfaceMove<Solution_>- Returns:
- never null
-
getPlanningValues
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:MoveReturns all planning values that entities are being assigned to by this move. Required forAcceptorType.VALUE_TABU.This method is only called after
Move.doMoveOnly(ScoreDirector)(which might affect the return values).Duplicate entries in the returned
Collectionare best avoided. The returnedCollectionis recommended to be in a stable order. For example: useListorLinkedHashSet, but notHashSet.- Specified by:
getPlanningValuesin interfaceMove<Solution_>- Returns:
- never null
-
getSimpleMoveTypeDescription
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:MoveDescribes the move type for statistical purposes. For example "ChangeMove(Process.computer)".The format is not formalized. Never parse the
Stringreturned by this method.- Specified by:
getSimpleMoveTypeDescriptionin interfaceMove<Solution_>- Returns:
- never null
-
toString
Deprecated, for removal: This API element is subject to removal in a future version.
-