Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.drools.planner.core.score.director
Interface ScoreDirector

All Known Implementing Classes:
  AbstractScoreDirector, DroolsScoreDirector, IncrementalScoreDirector, SimpleScoreDirector

    public interface ScoreDirector

The ScoreDirector hold the `Solution` workingSolution and calculates the score for that `Solution`.

Method Summary
`void` | `afterAllVariablesChanged(Object entity)`
`void` | `afterEntityAdded(Object entity)`
`void` | `afterEntityRemoved(Object entity)`
`void` | `afterProblemFactAdded(Object problemFact)`
`void` | `afterProblemFactChanged(Object problemFact)`
`void` | `afterProblemFactRemoved(Object problemFact)`
`void` | `afterVariableChanged(Object entity, String variableName)`
`void` | `assertWorkingScore(Score workingScore)` Asserts that if the `Score` is calculated for the current workingSolution, it would be equal to the parameter workingScore.
`void` | `beforeAllVariablesChanged(Object entity)`
`void` | `beforeEntityAdded(Object entity)`
`void` | `beforeEntityRemoved(Object entity)`
`void` | `beforeProblemFactAdded(Object problemFact)`
`void` | `beforeProblemFactChanged(Object problemFact)`
`void` | `beforeProblemFactRemoved(Object problemFact)`
`void` | `beforeVariableChanged(Object entity, String variableName)`
`Score` | `calculateScore()` Calculates the `Score` and updates the workingSolution accordingly.
`void` | `dispose()` Needs to be called after use because some implementations needs to clean up their resources.
`long` | `getCalculateCount()`
`ScoreDefinition` | `getScoreDefinition()`
`ScoreDirectorFactory` | `getScoreDirectorFactory()`
`SolutionDescriptor` | `getSolutionDescriptor()`
`Object` | `getTrailingEntity(PlanningVariableDescriptor chainedVariableDescriptor, Object planningValue)`
`List<Object>` | `getWorkingPlanningEntityList()`
`Solution` | `getWorkingSolution()` The `Solution` that is used to calculate the `Score`.
`boolean` | `isWorkingSolutionInitialized()`
`void` | `setWorkingSolution(Solution workingSolution)` The workingSolution must never be the same instance as the bestSolution, it should be a (un)changed clone.

Method Detail

### getScoreDirectorFactory

    ScoreDirectorFactory getScoreDirectorFactory()

  Returns:
    never null

### getSolutionDescriptor

    SolutionDescriptor getSolutionDescriptor()

  Returns:
    never null

### getScoreDefinition

    ScoreDefinition getScoreDefinition()

  Returns:
    never null

### getWorkingSolution

    Solution getWorkingSolution()

  The `Solution` that is used to calculate the `Score`.

  Because a `Score` is best calculated incrementally (by delta's), the `ScoreDirector` needs to be notified when it's workingSolution changes.

  If the `Solution` has been changed since `calculateScore()` has been called, the `Solution.getScore()` of this `Solution` won't be correct.

  Returns:
    never null

### setWorkingSolution

    void setWorkingSolution(Solution workingSolution)

  The workingSolution must never be the same instance as the bestSolution, it should be a (un)changed clone.

  Parameters:
    `workingSolution` - never null

### beforeEntityAdded

    void beforeEntityAdded(Object entity)

### afterEntityAdded

    void afterEntityAdded(Object entity)

### beforeAllVariablesChanged

    void beforeAllVariablesChanged(Object entity)

### afterAllVariablesChanged

    void afterAllVariablesChanged(Object entity)

### beforeVariableChanged

    void beforeVariableChanged(Object entity,
                               String variableName)

### afterVariableChanged

    void afterVariableChanged(Object entity,
                              String variableName)

### beforeEntityRemoved

    void beforeEntityRemoved(Object entity)

### afterEntityRemoved

    void afterEntityRemoved(Object entity)

### beforeProblemFactAdded

    void beforeProblemFactAdded(Object problemFact)

### afterProblemFactAdded

    void afterProblemFactAdded(Object problemFact)

### beforeProblemFactChanged

    void beforeProblemFactChanged(Object problemFact)

### afterProblemFactChanged

    void afterProblemFactChanged(Object problemFact)

### beforeProblemFactRemoved

    void beforeProblemFactRemoved(Object problemFact)

### afterProblemFactRemoved

    void afterProblemFactRemoved(Object problemFact)

### getWorkingPlanningEntityList

    List<Object> getWorkingPlanningEntityList()

  Returns:
    never null: an empty list if there are none

### isWorkingSolutionInitialized

    boolean isWorkingSolutionInitialized()

  Returns:
    true if the workingSolution is initialized

### calculateScore

    Score calculateScore()

  Calculates the `Score` and updates the workingSolution accordingly.

  Returns:
    never null, the `Score` of the working solution

### getCalculateCount

    long getCalculateCount()

  Returns:
    at least 0L

### getTrailingEntity

    Object getTrailingEntity(PlanningVariableDescriptor chainedVariableDescriptor,
                             Object planningValue)

  Parameters:
    `chainedVariableDescriptor` - never null, must be `PlanningVariableDescriptor.isChained()` true and known to the `SolutionDescriptor`
    `planningValue` - sometimes null
  Returns:
    never null

### assertWorkingScore

    void assertWorkingScore(Score workingScore)

  Asserts that if the `Score` is calculated for the current workingSolution, it would be equal to the parameter workingScore.

  Furthermore, if the assert fails, a score corruption analysis might be included in the exception message.

  Parameters:
    `workingScore` - never null
  See Also:
    `ScoreDirectorFactory.assertScore(Solution)`

### dispose

    void dispose()

  Needs to be called after use because some implementations needs to clean up their resources.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2012 JBoss by Red Hat. All Rights Reserved.