Package org.optaplanner.core.impl.score.director

## Interface InnerScoreDirectorFactory<Solution_,​Score_ extends Score<Score_>>

- Type Parameters:
    `Solution_` - the solution type, the class with the `PlanningSolution` annotation
    `Score_` - the score type to go with the solution
  All Superinterfaces:
    `ScoreDirectorFactory<Solution_>`
  All Known Implementing Classes:
    `AbstractConstraintStreamScoreDirectorFactory`, `AbstractScoreDirectorFactory`, `BavetConstraintStreamScoreDirectorFactory`, `DroolsConstraintStreamScoreDirectorFactory`, `DroolsScoreDirectorFactory`, `EasyScoreDirectorFactory`, `IncrementalScoreDirectorFactory`, `TestGenDroolsScoreDirectorFactory`

      public interface InnerScoreDirectorFactory<Solution_,​Score_ extends Score<Score_>>
      extends ScoreDirectorFactory<Solution_>

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `assertScoreFromScratch​(Solution_ solution)` | Asserts that if the `Score` is calculated for the parameter solution, it would be equal to the score of that parameter.
    `InnerScoreDirector<Solution_,​Score_>` | `buildScoreDirector()` | Creates a new `ScoreDirector` instance.
    `InnerScoreDirector<Solution_,​Score_>` | `buildScoreDirector​(boolean lookUpEnabled, boolean constraintMatchEnabledPreference)` | Like `buildScoreDirector()`, but optionally disables `ConstraintMatch` tracking and look up for more performance (presuming the `ScoreDirector` implementation actually supports it to begin with).
    `InitializingScoreTrend` | `getInitializingScoreTrend()` |
    `ScoreDefinition<Score_>` | `getScoreDefinition()` |
    `SolutionDescriptor<Solution_>` | `getSolutionDescriptor()` |

- - ### Method Detail

    - #### getSolutionDescriptor

          SolutionDescriptor<Solution_> getSolutionDescriptor()

      Returns:
        never null

    - #### getScoreDefinition

          ScoreDefinition<Score_> getScoreDefinition()

      Returns:
        never null

    - #### buildScoreDirector

          InnerScoreDirector<Solution_,​Score_> buildScoreDirector()

      Description copied from interface: `ScoreDirectorFactory`
      Creates a new `ScoreDirector` instance.
      Specified by:
        `buildScoreDirector` in interface `ScoreDirectorFactory<Solution_>`
      Returns:
        never null

    - #### buildScoreDirector

          InnerScoreDirector<Solution_,​Score_> buildScoreDirector​(boolean lookUpEnabled,
                                                                        boolean constraintMatchEnabledPreference)

      Like `buildScoreDirector()`, but optionally disables `ConstraintMatch` tracking and look up for more performance (presuming the `ScoreDirector` implementation actually supports it to begin with).
      Parameters:
        `lookUpEnabled` - true if a `ScoreDirector` implementation should track all working objects for `ScoreDirector.lookUpWorkingObject(Object)`
        `constraintMatchEnabledPreference` - false if a `ScoreDirector` implementation should not do `ConstraintMatch` tracking even if it supports it.
      Returns:
        never null
      See Also:
        `InnerScoreDirector.isConstraintMatchEnabled()`, `InnerScoreDirector.getConstraintMatchTotalMap()`

    - #### getInitializingScoreTrend

          InitializingScoreTrend getInitializingScoreTrend()

      Returns:
        never null

    - #### assertScoreFromScratch

          void assertScoreFromScratch​(Solution_ solution)

      Asserts that if the `Score` is calculated for the parameter solution, it would be equal to the score of that parameter.
      Parameters:
        `solution` - never null
      See Also:
        `InnerScoreDirector.assertWorkingScoreFromScratch(Score, Object)`