## Uses of Interface
org.optaplanner.core.impl.score.director.ScoreDirector

- Packages that use ScoreDirector
  Package | Description
  --- | ---
  org.optaplanner.core.api.domain.variable | Domain annotations and support classes for a planning variable.
  org.optaplanner.core.impl.domain.entity.descriptor |
  org.optaplanner.core.impl.domain.solution.descriptor |
  org.optaplanner.core.impl.domain.variable.anchor |
  org.optaplanner.core.impl.domain.variable.descriptor |
  org.optaplanner.core.impl.domain.variable.inverserelation |
  org.optaplanner.core.impl.domain.variable.listener |
  org.optaplanner.core.impl.exhaustivesearch.node.bounder |
  org.optaplanner.core.impl.heuristic.move |
  org.optaplanner.core.impl.heuristic.selector.common.decorator |
  org.optaplanner.core.impl.heuristic.selector.entity.decorator |
  org.optaplanner.core.impl.heuristic.selector.move.composite |
  org.optaplanner.core.impl.heuristic.selector.move.decorator |
  org.optaplanner.core.impl.heuristic.selector.move.factory |
  org.optaplanner.core.impl.heuristic.selector.move.generic |
  org.optaplanner.core.impl.heuristic.selector.move.generic.chained |
  org.optaplanner.core.impl.heuristic.selector.value.chained |
  org.optaplanner.core.impl.heuristic.selector.value.decorator |
  org.optaplanner.core.impl.partitionedsearch.partitioner |
  org.optaplanner.core.impl.partitionedsearch.scope |
  org.optaplanner.core.impl.phase.custom |
  org.optaplanner.core.impl.score.director |
  org.optaplanner.core.impl.score.director.drools |
  org.optaplanner.core.impl.score.director.drools.testgen | Classes to help isolate incremental score calculation bugs during `EnvironmentMode.isAsserted()`.
  org.optaplanner.core.impl.score.director.easy |
  org.optaplanner.core.impl.score.director.incremental |
  org.optaplanner.core.impl.score.director.stream |
  org.optaplanner.core.impl.solver |

- - ### Uses of ScoreDirector in org.optaplanner.core.api.domain.variable

    Methods in org.optaplanner.core.api.domain.variable with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | VariableListener.`afterEntityAdded​(ScoreDirector scoreDirector, Entity_ entity)` |
    `void` | VariableListener.`afterEntityRemoved​(ScoreDirector scoreDirector, Entity_ entity)` |
    `void` | VariableListener.`afterVariableChanged​(ScoreDirector scoreDirector, Entity_ entity)` |
    `void` | VariableListener.`beforeEntityAdded​(ScoreDirector scoreDirector, Entity_ entity)` |
    `void` | VariableListener.`beforeEntityRemoved​(ScoreDirector scoreDirector, Entity_ entity)` |
    `void` | VariableListener.`beforeVariableChanged​(ScoreDirector scoreDirector, Entity_ entity)` |
    `default void` | VariableListener.`resetWorkingSolution​(ScoreDirector scoreDirector)` | Called when the entire working solution changes.

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.domain.entity.descriptor

    Methods in org.optaplanner.core.impl.domain.entity.descriptor with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | EntityDescriptor.`countReinitializableVariables​(ScoreDirector<Solution_> scoreDirector, Object entity)` |
    `boolean` | EntityDescriptor.`isEntityInitializedOrPinned​(ScoreDirector<Solution_> scoreDirector, Object entity)` |
    `boolean` | EntityDescriptor.`isMovable​(ScoreDirector<Solution_> scoreDirector, Object entity)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.domain.solution.descriptor

    Methods in org.optaplanner.core.impl.domain.solution.descriptor with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | SolutionDescriptor.`getMovableEntityCount​(ScoreDirector<Solution_> scoreDirector)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.domain.variable.anchor

    Methods in org.optaplanner.core.impl.domain.variable.anchor with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | AnchorVariableListener.`afterEntityAdded​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedAnchorVariableSupply.`afterEntityAdded​(ScoreDirector scoreDirector, Object entity)` |
    `void` | AnchorVariableListener.`afterEntityRemoved​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedAnchorVariableSupply.`afterEntityRemoved​(ScoreDirector scoreDirector, Object entity)` |
    `void` | AnchorVariableListener.`afterVariableChanged​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedAnchorVariableSupply.`afterVariableChanged​(ScoreDirector scoreDirector, Object entity)` |
    `void` | AnchorVariableListener.`beforeEntityAdded​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedAnchorVariableSupply.`beforeEntityAdded​(ScoreDirector scoreDirector, Object entity)` |
    `void` | AnchorVariableListener.`beforeEntityRemoved​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedAnchorVariableSupply.`beforeEntityRemoved​(ScoreDirector scoreDirector, Object entity)` |
    `void` | AnchorVariableListener.`beforeVariableChanged​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedAnchorVariableSupply.`beforeVariableChanged​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedAnchorVariableSupply.`clearWorkingSolution​(ScoreDirector scoreDirector)` |
    `protected void` | AnchorVariableListener.`insert​(ScoreDirector scoreDirector, Object entity)` |
    `protected void` | ExternalizedAnchorVariableSupply.`insert​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedAnchorVariableSupply.`resetWorkingSolution​(ScoreDirector scoreDirector)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.domain.variable.descriptor

    Methods in org.optaplanner.core.impl.domain.variable.descriptor with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | GenuineVariableDescriptor.`isReinitializable​(ScoreDirector<Solution_> scoreDirector, Object entity)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.domain.variable.inverserelation

    Methods in org.optaplanner.core.impl.domain.variable.inverserelation with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | CollectionInverseVariableListener.`afterEntityAdded​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedCollectionInverseVariableSupply.`afterEntityAdded​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedSingletonInverseVariableSupply.`afterEntityAdded​(ScoreDirector scoreDirector, Object entity)` |
    `void` | SingletonInverseVariableListener.`afterEntityAdded​(ScoreDirector scoreDirector, Object entity)` |
    `void` | CollectionInverseVariableListener.`afterEntityRemoved​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedCollectionInverseVariableSupply.`afterEntityRemoved​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedSingletonInverseVariableSupply.`afterEntityRemoved​(ScoreDirector scoreDirector, Object entity)` |
    `void` | SingletonInverseVariableListener.`afterEntityRemoved​(ScoreDirector scoreDirector, Object entity)` |
    `void` | CollectionInverseVariableListener.`afterVariableChanged​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedCollectionInverseVariableSupply.`afterVariableChanged​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedSingletonInverseVariableSupply.`afterVariableChanged​(ScoreDirector scoreDirector, Object entity)` |
    `void` | SingletonInverseVariableListener.`afterVariableChanged​(ScoreDirector scoreDirector, Object entity)` |
    `void` | CollectionInverseVariableListener.`beforeEntityAdded​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedCollectionInverseVariableSupply.`beforeEntityAdded​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedSingletonInverseVariableSupply.`beforeEntityAdded​(ScoreDirector scoreDirector, Object entity)` |
    `void` | SingletonInverseVariableListener.`beforeEntityAdded​(ScoreDirector scoreDirector, Object entity)` |
    `void` | CollectionInverseVariableListener.`beforeEntityRemoved​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedCollectionInverseVariableSupply.`beforeEntityRemoved​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedSingletonInverseVariableSupply.`beforeEntityRemoved​(ScoreDirector scoreDirector, Object entity)` |
    `void` | SingletonInverseVariableListener.`beforeEntityRemoved​(ScoreDirector scoreDirector, Object entity)` |
    `void` | CollectionInverseVariableListener.`beforeVariableChanged​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedCollectionInverseVariableSupply.`beforeVariableChanged​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedSingletonInverseVariableSupply.`beforeVariableChanged​(ScoreDirector scoreDirector, Object entity)` |
    `void` | SingletonInverseVariableListener.`beforeVariableChanged​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedCollectionInverseVariableSupply.`clearWorkingSolution​(ScoreDirector scoreDirector)` |
    `void` | ExternalizedSingletonInverseVariableSupply.`clearWorkingSolution​(ScoreDirector scoreDirector)` |
    `protected void` | CollectionInverseVariableListener.`insert​(ScoreDirector scoreDirector, Object entity)` |
    `protected void` | ExternalizedCollectionInverseVariableSupply.`insert​(ScoreDirector scoreDirector, Object entity)` |
    `protected void` | ExternalizedSingletonInverseVariableSupply.`insert​(ScoreDirector scoreDirector, Object entity)` |
    `protected void` | SingletonInverseVariableListener.`insert​(ScoreDirector scoreDirector, Object entity)` |
    `void` | ExternalizedCollectionInverseVariableSupply.`resetWorkingSolution​(ScoreDirector scoreDirector)` |
    `void` | ExternalizedSingletonInverseVariableSupply.`resetWorkingSolution​(ScoreDirector scoreDirector)` |
    `protected void` | CollectionInverseVariableListener.`retract​(ScoreDirector scoreDirector, Object entity)` |
    `protected void` | ExternalizedCollectionInverseVariableSupply.`retract​(ScoreDirector scoreDirector, Object entity)` |
    `protected void` | ExternalizedSingletonInverseVariableSupply.`retract​(ScoreDirector scoreDirector, Object entity)` |
    `protected void` | SingletonInverseVariableListener.`retract​(ScoreDirector scoreDirector, Object entity)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.domain.variable.listener

    Methods in org.optaplanner.core.impl.domain.variable.listener with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | VariableListener.`afterEntityAdded​(ScoreDirector scoreDirector, Entity_ entity)` | Deprecated.
    `void` | VariableListenerAdapter.`afterEntityAdded​(ScoreDirector scoreDirector, Entity_ entity)` | Deprecated.
    `void` | VariableListener.`afterEntityRemoved​(ScoreDirector scoreDirector, Entity_ entity)` | Deprecated.
    `void` | VariableListenerAdapter.`afterEntityRemoved​(ScoreDirector scoreDirector, Entity_ entity)` | Deprecated.
    `void` | VariableListener.`afterVariableChanged​(ScoreDirector scoreDirector, Entity_ entity)` | Deprecated.
    `void` | VariableListenerAdapter.`afterVariableChanged​(ScoreDirector scoreDirector, Entity_ entity)` | Deprecated.
    `void` | VariableListener.`beforeEntityAdded​(ScoreDirector scoreDirector, Entity_ entity)` | Deprecated.
    `void` | VariableListenerAdapter.`beforeEntityAdded​(ScoreDirector scoreDirector, Entity_ entity)` | Deprecated.
    `void` | VariableListener.`beforeEntityRemoved​(ScoreDirector scoreDirector, Entity_ entity)` | Deprecated.
    `void` | VariableListenerAdapter.`beforeEntityRemoved​(ScoreDirector scoreDirector, Entity_ entity)` | Deprecated.
    `void` | VariableListener.`beforeVariableChanged​(ScoreDirector scoreDirector, Entity_ entity)` | Deprecated.
    `void` | VariableListenerAdapter.`beforeVariableChanged​(ScoreDirector scoreDirector, Entity_ entity)` | Deprecated.
    `default void` | StatefulVariableListener.`clearWorkingSolution​(ScoreDirector scoreDirector)` | Deprecated. Implement `VariableListener.close()` instead.
    `void` | StatefulVariableListener.`resetWorkingSolution​(ScoreDirector scoreDirector)` | Deprecated. Overrides `VariableListener.resetWorkingSolution(ScoreDirector)`.

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.exhaustivesearch.node.bounder

    Methods in org.optaplanner.core.impl.exhaustivesearch.node.bounder with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `Score` | ScoreBounder.`calculateOptimisticBound​(ScoreDirector scoreDirector, Score score)` | In OR terms, this is called the lower bound if they minimize, and upper bound if they maximize.
    `Score` | TrendBasedScoreBounder.`calculateOptimisticBound​(ScoreDirector scoreDirector, Score score)` |
    `Score` | ScoreBounder.`calculatePessimisticBound​(ScoreDirector scoreDirector, Score score)` | In OR terms, this is called the upper bound if they minimize, and lower bound if they maximize.
    `Score` | TrendBasedScoreBounder.`calculatePessimisticBound​(ScoreDirector scoreDirector, Score score)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.heuristic.move

    Methods in org.optaplanner.core.impl.heuristic.move with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected abstract AbstractMove<Solution_>` | AbstractMove.`createUndoMove​(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.
    `NoChangeMove<Solution_>` | NoChangeMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `AbstractMove<Solution_>` | AbstractMove.`doMove​(ScoreDirector<Solution_> scoreDirector)` |
    `CompositeMove<Solution_>` | CompositeMove.`doMove​(ScoreDirector<Solution_> scoreDirector)` |
    `Move<Solution_>` | Move.`doMove​(ScoreDirector<Solution_> scoreDirector)` | Does the move (which indirectly affects the `getWorkingSolution()`).
    `protected abstract void` | AbstractMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` | Like `AbstractMove.doMove(ScoreDirector)` but without the `triggerVariableListeners()` call (because `AbstractMove.doMove(ScoreDirector)` already does that).
    `protected void` | NoChangeMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | CompositeMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | Move.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` | Called before a move is evaluated to decide whether the move can be done and evaluated.
    `boolean` | NoChangeMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `CompositeMove<Solution_>` | CompositeMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |
    `default Move<Solution_>` | Move.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` | Rebases a move from an origin `ScoreDirector` to another destination `ScoreDirector` which is usually on another `Thread` or JVM.
    `NoChangeMove<Solution_>` | NoChangeMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |
    `static Object[]` | AbstractMove.`rebaseArray​(Object[] externalObjects, ScoreDirector<?> destinationScoreDirector)` |
    `static <E> List<E>` | AbstractMove.`rebaseList​(List<E> externalObjectList, ScoreDirector<?> destinationScoreDirector)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.heuristic.selector.common.decorator

    Methods in org.optaplanner.core.impl.heuristic.selector.common.decorator with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | CompositeSelectionFilter.`accept​(ScoreDirector<Solution_> scoreDirector, T selection)` |
    `boolean` | SelectionFilter.`accept​(ScoreDirector<Solution_> scoreDirector, T selection)` |
    `double` | FairSelectorProbabilityWeightFactory.`createProbabilityWeight​(ScoreDirector<Solution_> scoreDirector, IterableSelector selector)` |
    `double` | FixedSelectorProbabilityWeightFactory.`createProbabilityWeight​(ScoreDirector<Solution_> scoreDirector, Selector_ selector)` |
    `double` | SelectionProbabilityWeightFactory.`createProbabilityWeight​(ScoreDirector<Solution_> scoreDirector, T selection)` |
    `void` | ComparatorSelectionSorter.`sort​(ScoreDirector<Solution_> scoreDirector, List<T> selectionList)` |
    `void` | SelectionSorter.`sort​(ScoreDirector<Solution_> scoreDirector, List<T> selectionList)` |
    `void` | WeightFactorySelectionSorter.`sort​(ScoreDirector<Solution_> scoreDirector, List<T> selectionList)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.heuristic.selector.entity.decorator

    Fields in org.optaplanner.core.impl.heuristic.selector.entity.decorator declared as ScoreDirector
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected ScoreDirector` | FilteringEntitySelector.`scoreDirector` |

    Methods in org.optaplanner.core.impl.heuristic.selector.entity.decorator with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected boolean` | FilteringEntitySelector.`accept​(ScoreDirector scoreDirector, Object entity)` |
    `boolean` | NullValueReinitializeVariableEntityFilter.`accept​(ScoreDirector<Solution_> scoreDirector, Object entity)` |
    `boolean` | PinEntityFilter.`accept​(ScoreDirector<Solution_> scoreDirector, Object entity)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.heuristic.selector.move.composite

    Fields in org.optaplanner.core.impl.heuristic.selector.move.composite declared as ScoreDirector
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected ScoreDirector` | UnionMoveSelector.`scoreDirector` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.heuristic.selector.move.decorator

    Fields in org.optaplanner.core.impl.heuristic.selector.move.decorator declared as ScoreDirector
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected ScoreDirector` | FilteringMoveSelector.`scoreDirector` |

    Methods in org.optaplanner.core.impl.heuristic.selector.move.decorator with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected boolean` | FilteringMoveSelector.`accept​(ScoreDirector scoreDirector, Move move)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.heuristic.selector.move.factory

    Fields in org.optaplanner.core.impl.heuristic.selector.move.factory declared as ScoreDirector
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected ScoreDirector` | MoveIteratorFactoryToMoveSelectorBridge.`scoreDirector` |

    Methods in org.optaplanner.core.impl.heuristic.selector.move.factory with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `Iterator<? extends Move<Solution_>>` | MoveIteratorFactory.`createOriginalMoveIterator​(ScoreDirector<Solution_> scoreDirector)` | When it is called depends on the configured `SelectionCacheType`.
    `Iterator<? extends Move<Solution_>>` | MoveIteratorFactory.`createRandomMoveIterator​(ScoreDirector<Solution_> scoreDirector, Random workingRandom)` | When it is called depends on the configured `SelectionCacheType`.
    `long` | MoveIteratorFactory.`getSize​(ScoreDirector<Solution_> scoreDirector)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.heuristic.selector.move.generic

    Methods in org.optaplanner.core.impl.heuristic.selector.move.generic with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `ChangeMove<Solution_>` | ChangeMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `PillarChangeMove<Solution_>` | PillarChangeMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `PillarSwapMove<Solution_>` | PillarSwapMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `SwapMove<Solution_>` | SwapMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `protected void` | ChangeMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `protected void` | PillarChangeMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `protected void` | PillarSwapMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `protected void` | SwapMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | ChangeMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | PillarChangeMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | PillarSwapMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | SwapMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `ChangeMove<Solution_>` | ChangeMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |
    `PillarChangeMove<Solution_>` | PillarChangeMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |
    `PillarSwapMove<Solution_>` | PillarSwapMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |
    `SwapMove<Solution_>` | SwapMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.heuristic.selector.move.generic.chained

    Methods in org.optaplanner.core.impl.heuristic.selector.move.generic.chained with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `ChainedChangeMove<Solution_>` | ChainedChangeMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `ChainedSwapMove<Solution_>` | ChainedSwapMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `KOptMove<Solution_>` | KOptMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `SubChainChangeMove<Solution_>` | SubChainChangeMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `SubChainReversingChangeMove<Solution_>` | SubChainReversingChangeMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `SubChainReversingSwapMove<Solution_>` | SubChainReversingSwapMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `SubChainSwapMove<Solution_>` | SubChainSwapMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `TailChainSwapMove<Solution_>` | TailChainSwapMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `protected void` | ChainedChangeMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `protected void` | ChainedSwapMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `protected void` | KOptMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `protected void` | SubChainChangeMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `protected void` | SubChainReversingChangeMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `protected void` | SubChainReversingSwapMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `protected void` | SubChainSwapMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `protected void` | TailChainSwapMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | ChainedChangeMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | KOptMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | SubChainChangeMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | SubChainReversingChangeMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | SubChainReversingSwapMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | SubChainSwapMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | TailChainSwapMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `ChainedChangeMove<Solution_>` | ChainedChangeMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |
    `ChainedSwapMove<Solution_>` | ChainedSwapMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |
    `KOptMove<Solution_>` | KOptMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |
    `SubChainChangeMove<Solution_>` | SubChainChangeMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |
    `SubChainReversingChangeMove<Solution_>` | SubChainReversingChangeMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |
    `SubChainReversingSwapMove<Solution_>` | SubChainReversingSwapMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |
    `SubChainSwapMove<Solution_>` | SubChainSwapMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |
    `TailChainSwapMove<Solution_>` | TailChainSwapMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |
    `protected void` | TailChainSwapMove.`reverseChain​(ScoreDirector scoreDirector, Object fromValue, Object fromEntity, Object toEntity)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.heuristic.selector.value.chained

    Methods in org.optaplanner.core.impl.heuristic.selector.value.chained with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `<Solution_> SubChain` | SubChain.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.heuristic.selector.value.decorator

    Fields in org.optaplanner.core.impl.heuristic.selector.value.decorator declared as ScoreDirector
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected ScoreDirector` | EntityDependentSortingValueSelector.`scoreDirector` |
    `protected ScoreDirector` | FilteringValueSelector.`scoreDirector` |
    `protected ScoreDirector` | ReinitializeVariableValueSelector.`scoreDirector` |

    Methods in org.optaplanner.core.impl.heuristic.selector.value.decorator with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected boolean` | FilteringValueSelector.`accept​(ScoreDirector scoreDirector, Object entity)` |
    `boolean` | MovableChainedTrailingValueFilter.`accept​(ScoreDirector<Solution_> scoreDirector, Object value)` |
    `protected SingletonInverseVariableSupply` | MovableChainedTrailingValueFilter.`retrieveSingletonInverseVariableSupply​(ScoreDirector<Solution_> scoreDirector)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.partitionedsearch.partitioner

    Methods in org.optaplanner.core.impl.partitionedsearch.partitioner with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<Solution_>` | SolutionPartitioner.`splitWorkingSolution​(ScoreDirector<Solution_> scoreDirector, Integer runnablePartThreadLimit)` | Returns a list of partition cloned `solutions` for which each `planning entity` is partition cloned into exactly 1 of those partitions.

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.partitionedsearch.scope

    Methods in org.optaplanner.core.impl.partitionedsearch.scope with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected PartitionChangeMove<Solution_>` | PartitionChangeMove.`createUndoMove​(ScoreDirector<Solution_> scoreDirector)` |
    `protected void` | PartitionChangeMove.`doMoveOnGenuineVariables​(ScoreDirector<Solution_> scoreDirector)` |
    `boolean` | PartitionChangeMove.`isMoveDoable​(ScoreDirector<Solution_> scoreDirector)` |
    `PartitionChangeMove<Solution_>` | PartitionChangeMove.`rebase​(ScoreDirector<Solution_> destinationScoreDirector)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.phase.custom

    Methods in org.optaplanner.core.impl.phase.custom with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | CustomPhaseCommand.`changeWorkingSolution​(ScoreDirector<Solution_> scoreDirector)` | Changes `working solution` of `getWorkingSolution()`.
    `void` | NoChangeCustomPhaseCommand.`changeWorkingSolution​(ScoreDirector<Object> scoreDirector)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.score.director

    Subinterfaces of ScoreDirector in org.optaplanner.core.impl.score.director
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `InnerScoreDirector<Solution_>` |

    Classes in org.optaplanner.core.impl.score.director that implement ScoreDirector
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractScoreDirector<Solution_,​Factory_ extends AbstractScoreDirectorFactory<Solution_>>` | Abstract superclass for `ScoreDirector`.

    Methods in org.optaplanner.core.impl.score.director that return ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `ScoreDirector<Solution_>` | ScoreDirectorFactory.`buildScoreDirector()` | Creates a new `ScoreDirector` instance.
    `ScoreDirector<Solution_>` | InnerScoreDirector.`clone()` | Clones this `ScoreDirector` and its `working solution`.

    Methods in org.optaplanner.core.impl.score.director with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected String` | AbstractScoreDirector.`buildScoreCorruptionAnalysis​(ScoreDirector<Solution_> uncorruptedScoreDirector, boolean predicted)` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.score.director.drools

    Classes in org.optaplanner.core.impl.score.director.drools that implement ScoreDirector
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DroolsScoreDirector<Solution_>` | Drools implementation of `ScoreDirector`, which directs the Rule Engine to calculate the `Score` of the `working solution`.

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.score.director.drools.testgen

    Classes in org.optaplanner.core.impl.score.director.drools.testgen that implement ScoreDirector
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `TestGenDroolsScoreDirector<Solution_>` |

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.score.director.easy

    Classes in org.optaplanner.core.impl.score.director.easy that implement ScoreDirector
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `EasyScoreDirector<Solution_>` | Easy java implementation of `ScoreDirector`, which recalculates the `Score` of the `working solution` every time.

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.score.director.incremental

    Classes in org.optaplanner.core.impl.score.director.incremental that implement ScoreDirector
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `IncrementalScoreDirector<Solution_>` | Incremental java implementation of `ScoreDirector`, which only recalculates the `Score` of the part of the `working solution` that changed, instead of the going through the entire `PlanningSolution`.

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.score.director.stream

    Classes in org.optaplanner.core.impl.score.director.stream that implement ScoreDirector
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ConstraintStreamScoreDirector<Solution_>` | FP streams implementation of `ScoreDirector`, which only recalculates the `Score` of the part of the `working solution` that changed, instead of the going through the entire `PlanningSolution`.

  - ### Uses of ScoreDirector in org.optaplanner.core.impl.solver

    Methods in org.optaplanner.core.impl.solver with parameters of type ScoreDirector
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | ProblemFactChange.`doChange​(ScoreDirector<Solution_> scoreDirector)` | Does the change on the `PlanningSolution` of the `ScoreDirector` and notifies the `ScoreDirector` accordingly.