org.drools.planner.core.move.generic
Class GenericChainedChangeMove
java.lang.Object
org.drools.planner.core.move.generic.GenericChangeMove
org.drools.planner.core.move.generic.GenericChainedChangeMove
- All Implemented Interfaces:
- Move
public class GenericChainedChangeMove
- extends GenericChangeMove
GenericChainedChangeMove
public GenericChainedChangeMove(Object planningEntity,
PlanningVariableDescriptor planningVariableDescriptor,
Object toPlanningValue,
Object oldTrailingEntity,
Object newTrailingEntity)
isMoveDoable
public boolean isMoveDoable(ScoreDirector scoreDirector)
- Description copied from interface:
Move
- Called 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
Solution
.
- Either it's simply not possible to do (for example due to build-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 MoveFactory
,
this is not needed as the Solver
will do it for you.
- Specified by:
isMoveDoable
in interface Move
- Overrides:
isMoveDoable
in class GenericChangeMove
- Parameters:
scoreDirector
- the ScoreDirector
not 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.
createUndoMove
public Move createUndoMove(ScoreDirector scoreDirector)
- Description copied from interface:
Move
- 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.
- Specified by:
createUndoMove
in interface Move
- Overrides:
createUndoMove
in class GenericChangeMove
- Parameters:
scoreDirector
- the ScoreDirector
not yet modified by the move.
- Returns:
- an undoMove which does the exact opposite of this move.
doMove
public void doMove(ScoreDirector scoreDirector)
- Description copied from interface:
Move
- Does the Move and updates the
Solution
and its ScoreDirector
accordingly.
When the Solution
is modified, the ScoreDirector
should be correctly notified,
otherwise later calculated Score
s can be corrupted.
- Specified by:
doMove
in interface Move
- Overrides:
doMove
in class GenericChangeMove
- Parameters:
scoreDirector
- never null, the ScoreDirector
that needs to get notified of the changes.
Copyright © 2001-2012 JBoss by Red Hat. All Rights Reserved.