Class ListUnassignMove<Solution_>
java.lang.Object
org.optaplanner.core.impl.heuristic.move.AbstractMove<Solution_>
org.optaplanner.core.impl.heuristic.selector.move.generic.list.ListUnassignMove<Solution_>
- All Implemented Interfaces:
Move<Solution_>
-
Constructor Summary
ConstructorsConstructorDescriptionListUnassignMove(ListVariableDescriptor<Solution_> variableDescriptor, Object sourceEntity, int sourceIndex) -
Method Summary
Modifier and TypeMethodDescriptioncreateUndoMove(ScoreDirector<Solution_> scoreDirector) Called before the move is done, so the move can be evaluated and then be undone without resulting into a permanent change in the solution.protected voiddoMoveOnGenuineVariables(ScoreDirector<Solution_> scoreDirector) LikeAbstractMove.doMoveOnly(ScoreDirector)but without theScoreDirector.triggerVariableListeners()call (becauseAbstractMove.doMoveOnly(ScoreDirector)already does that).booleanDescribes the move type for statistical purposes.inthashCode()booleanisMoveDoable(ScoreDirector<Solution_> scoreDirector) Called before a move is evaluated to decide whether the move can be done and evaluated.toString()Methods inherited from class org.optaplanner.core.impl.heuristic.move.AbstractMove
doMove, doMoveOnly, rebaseArray, rebaseListMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.optaplanner.core.impl.heuristic.move.Move
getPlanningEntities, getPlanningValues, rebase
-
Constructor Details
-
ListUnassignMove
public ListUnassignMove(ListVariableDescriptor<Solution_> variableDescriptor, Object sourceEntity, int sourceIndex)
-
-
Method Details
-
isMoveDoable
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.- 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
-
createUndoMove
Description copied from class:AbstractMoveCalled before the move is done, so the move can be evaluated and then be undone without resulting into a permanent change in the solution.- Specified by:
createUndoMovein classAbstractMove<Solution_>- Parameters:
scoreDirector- theScoreDirectornot yet modified by the move.- Returns:
- an undoMove which does the exact opposite of this move.
-
doMoveOnGenuineVariables
Description copied from class:AbstractMoveLikeAbstractMove.doMoveOnly(ScoreDirector)but without theScoreDirector.triggerVariableListeners()call (becauseAbstractMove.doMoveOnly(ScoreDirector)already does that).- Specified by:
doMoveOnGenuineVariablesin classAbstractMove<Solution_>- Parameters:
scoreDirector- never null
-
getSimpleMoveTypeDescription
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.- Returns:
- never null
-
equals
-
hashCode
public int hashCode() -
toString
-