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 Scores 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.