org.drools.planner.core.score.director.drools
Class DroolsScoreDirector

java.lang.Object
  extended by org.drools.planner.core.score.director.AbstractScoreDirector<DroolsScoreDirectorFactory>
      extended by org.drools.planner.core.score.director.drools.DroolsScoreDirector
All Implemented Interfaces:
ScoreDirector

public class DroolsScoreDirector
extends AbstractScoreDirector<DroolsScoreDirectorFactory>

Drools implementation of ScoreDirector, which directs the Rule Engine to calculate the Score of the Solution workingSolution.

See Also:
ScoreDirector

Field Summary
static String GLOBAL_SCORE_HOLDER_KEY
           
protected  org.drools.StatefulSession workingMemory
           
protected  ScoreHolder workingScoreHolder
           
 
Fields inherited from class org.drools.planner.core.score.director.AbstractScoreDirector
calculateCount, logger, scoreDirectorFactory, workingSolution
 
Constructor Summary
DroolsScoreDirector(DroolsScoreDirectorFactory scoreDirectorFactory)
           
 
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 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)
           
protected  String buildScoreCorruptionAnalysis(ScoreDirector uncorruptedScoreDirector)
           
 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.
protected  org.drools.RuleBase getRuleBase()
           
 Collection<Object> getWorkingFacts()
           
 org.drools.WorkingMemory getWorkingMemory()
           
 void setWorkingSolution(Solution workingSolution)
          The workingSolution must never be the same instance as the bestSolution, it should be a (un)changed clone.
 
Methods inherited from class org.drools.planner.core.score.director.AbstractScoreDirector
assertWorkingScore, getCalculateCount, getScoreDefinition, getSolutionDescriptor, getVariableToEntitiesMap, getWorkingPlanningEntityList, getWorkingSolution, isWorkingSolutionInitialized
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

GLOBAL_SCORE_HOLDER_KEY

public static final String GLOBAL_SCORE_HOLDER_KEY
See Also:
Constant Field Values

workingMemory

protected org.drools.StatefulSession workingMemory

workingScoreHolder

protected ScoreHolder workingScoreHolder
Constructor Detail

DroolsScoreDirector

public DroolsScoreDirector(DroolsScoreDirectorFactory scoreDirectorFactory)
Method Detail

getRuleBase

protected org.drools.RuleBase getRuleBase()

setWorkingSolution

public void setWorkingSolution(Solution workingSolution)
Description copied from interface: ScoreDirector
The workingSolution must never be the same instance as the bestSolution, it should be a (un)changed clone.

Parameters:
workingSolution - never null

getWorkingMemory

public org.drools.WorkingMemory getWorkingMemory()
Returns:
never null

getWorkingFacts

public Collection<Object> getWorkingFacts()

beforeEntityAdded

public void beforeEntityAdded(Object entity)

afterEntityAdded

public void afterEntityAdded(Object entity)

beforeAllVariablesChanged

public void beforeAllVariablesChanged(Object entity)

afterAllVariablesChanged

public void afterAllVariablesChanged(Object entity)

beforeVariableChanged

public void beforeVariableChanged(Object entity,
                                  String variableName)

afterVariableChanged

public void afterVariableChanged(Object entity,
                                 String variableName)

beforeEntityRemoved

public void beforeEntityRemoved(Object entity)

afterEntityRemoved

public void afterEntityRemoved(Object entity)

beforeProblemFactAdded

public void beforeProblemFactAdded(Object problemFact)

afterProblemFactAdded

public void afterProblemFactAdded(Object problemFact)

beforeProblemFactChanged

public void beforeProblemFactChanged(Object problemFact)

afterProblemFactChanged

public void afterProblemFactChanged(Object problemFact)

beforeProblemFactRemoved

public void beforeProblemFactRemoved(Object problemFact)

afterProblemFactRemoved

public void afterProblemFactRemoved(Object problemFact)

calculateScore

public Score calculateScore()
Description copied from interface: ScoreDirector
Calculates the Score and updates the workingSolution accordingly.

Returns:
never null, the Score of the working solution

buildScoreCorruptionAnalysis

protected String buildScoreCorruptionAnalysis(ScoreDirector uncorruptedScoreDirector)
Overrides:
buildScoreCorruptionAnalysis in class AbstractScoreDirector<DroolsScoreDirectorFactory>

dispose

public void dispose()
Description copied from interface: ScoreDirector
Needs to be called after use because some implementations needs to clean up their resources.



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