Class TestGenDroolsScoreDirector<Solution_>
- java.lang.Object
-
- org.optaplanner.core.impl.score.director.AbstractScoreDirector<Solution_,DroolsScoreDirectorFactory<Solution_>>
-
- org.optaplanner.core.impl.score.director.drools.DroolsScoreDirector<Solution_>
-
- org.optaplanner.core.impl.score.director.drools.testgen.TestGenDroolsScoreDirector<Solution_>
-
- All Implemented Interfaces:
AutoCloseable
,Cloneable
,InnerScoreDirector<Solution_>
,ScoreDirector<Solution_>
public class TestGenDroolsScoreDirector<Solution_> extends DroolsScoreDirector<Solution_>
-
-
Field Summary
-
Fields inherited from class org.optaplanner.core.impl.score.director.drools.DroolsScoreDirector
GLOBAL_SCORE_HOLDER_KEY, kieSession, scoreHolder
-
Fields inherited from class org.optaplanner.core.impl.score.director.AbstractScoreDirector
allChangesWillBeUndoneBeforeStepEnds, calculationCount, constraintMatchEnabledPreference, logger, lookUpEnabled, lookUpManager, scoreDirectorFactory, variableListenerSupport, workingEntityListRevision, workingInitScore, workingSolution
-
-
Constructor Summary
Constructors Constructor Description TestGenDroolsScoreDirector(DroolsScoreDirectorFactory<Solution_> scoreDirectorFactory, boolean lookUpEnabled, boolean constraintMatchEnabledPreference, List<String> scoreDrlList, List<File> scoreDrlFileList)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterEntityAdded(EntityDescriptor<Solution_> entityDescriptor, Object entity)
void
afterEntityRemoved(EntityDescriptor<Solution_> entityDescriptor, Object entity)
void
afterProblemFactAdded(Object problemFact)
void
afterProblemFactRemoved(Object problemFact)
void
afterVariableChanged(VariableDescriptor variableDescriptor, Object entity)
void
assertShadowVariablesAreNotStale(Score expectedWorkingScore, Object completedAction)
Asserts that if allVariableListener
s are forcibly triggered, and therefore all shadow variables are updated if needed, that none of the shadow variables of theworking solution
change, Then also asserts that theScore
calculated for theworking solution
afterwards is equal to the parameterexpectedWorkingScore
.void
assertWorkingScoreFromScratch(Score workingScore, Object completedAction)
Asserts that if theScore
is calculated for the currentworking solution
in a freshScoreDirector
(with no incremental calculation residue), it is equal to the parameterworkingScore
.void
beforeVariableChanged(VariableDescriptor variableDescriptor, Object entity)
Score
calculateScore()
Calculates theScore
and updates theworking solution
accordingly.void
close()
Needs to be called after use because some implementations need to clean up their resources.org.kie.api.runtime.KieSession
createKieSession()
Map<String,ConstraintMatchTotal>
getConstraintMatchTotalMap()
Collection<ConstraintMatchTotal>
getConstraintMatchTotals()
void
setWorkingSolution(Solution_ workingSolution)
Theworking solution
must never be the same instance as thebest solution
, it should be a (un)changed clone.-
Methods inherited from class org.optaplanner.core.impl.score.director.drools.DroolsScoreDirector
afterProblemPropertyChanged, getIndictmentMap, getKieSession, getWorkingFacts, isConstraintMatchEnabled
-
Methods inherited from class org.optaplanner.core.impl.score.director.AbstractScoreDirector
afterEntityAdded, afterEntityRemoved, afterVariableChanged, assertExpectedUndoMoveScore, assertExpectedWorkingScore, assertPredictedScoreFromScratch, beforeEntityAdded, beforeEntityAdded, beforeEntityRemoved, beforeEntityRemoved, beforeProblemFactAdded, beforeProblemFactRemoved, beforeProblemPropertyChanged, beforeVariableChanged, buildScoreCorruptionAnalysis, buildShadowVariableAnalysis, changeVariableFacade, clone, cloneSolution, cloneWorkingSolution, createChildThreadScoreDirector, createShadowVariablesViolationMessage, doAndProcessMove, doAndProcessMove, explainScore, getCalculationCount, getScoreDefinition, getScoreDirectorFactory, getSolutionDescriptor, getSupplyManager, getWorkingEntityCount, getWorkingEntityList, getWorkingEntityListRevision, getWorkingSolution, getWorkingValueCount, isAllChangesWillBeUndoneBeforeStepEnds, isConstraintMatchEnabledPreference, isLookUpEnabled, isWorkingEntityListDirty, lookUpWorkingObject, lookUpWorkingObjectOrReturnNull, overwriteConstraintMatchEnabledPreference, resetCalculationCount, setAllChangesWillBeUndoneBeforeStepEnds, setCalculatedScore, setWorkingEntityListDirty, toString, triggerVariableListeners
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.optaplanner.core.impl.score.director.ScoreDirector
dispose
-
-
-
-
Method Detail
-
createKieSession
public org.kie.api.runtime.KieSession createKieSession()
-
setWorkingSolution
public void setWorkingSolution(Solution_ workingSolution)
Description copied from interface:ScoreDirector
Theworking solution
must never be the same instance as thebest solution
, it should be a (un)changed clone.Only call this method on a separate
ScoreDirector
instance, built bySolverFactory.getScoreDirectorFactory()
, not on the one used inside theSolver
itself.- Specified by:
setWorkingSolution
in interfaceScoreDirector<Solution_>
- Overrides:
setWorkingSolution
in classDroolsScoreDirector<Solution_>
- Parameters:
workingSolution
- never null
-
calculateScore
public Score calculateScore()
Description copied from interface:ScoreDirector
Calculates theScore
and updates theworking solution
accordingly.- Specified by:
calculateScore
in interfaceScoreDirector<Solution_>
- Overrides:
calculateScore
in classDroolsScoreDirector<Solution_>
- Returns:
- never null, the
Score
of theworking solution
-
assertShadowVariablesAreNotStale
public void assertShadowVariablesAreNotStale(Score expectedWorkingScore, Object completedAction)
Description copied from interface:InnerScoreDirector
Asserts that if allVariableListener
s are forcibly triggered, and therefore all shadow variables are updated if needed, that none of the shadow variables of theworking solution
change, Then also asserts that theScore
calculated for theworking solution
afterwards is equal to the parameterexpectedWorkingScore
.Used to assert that the shadow variables' state is consistent with the genuine variables' state.
- Specified by:
assertShadowVariablesAreNotStale
in interfaceInnerScoreDirector<Solution_>
- Overrides:
assertShadowVariablesAreNotStale
in classAbstractScoreDirector<Solution_,DroolsScoreDirectorFactory<Solution_>>
- Parameters:
expectedWorkingScore
- never nullcompletedAction
- sometimes null, when assertion fails then the completedAction'sObject.toString()
is included in the exception message
-
assertWorkingScoreFromScratch
public void assertWorkingScoreFromScratch(Score workingScore, Object completedAction)
Description copied from interface:InnerScoreDirector
Asserts that if theScore
is calculated for the currentworking solution
in a freshScoreDirector
(with no incremental calculation residue), it is equal to the parameterworkingScore
.Furthermore, if the assert fails, a score corruption analysis might be included in the exception message.
- Specified by:
assertWorkingScoreFromScratch
in interfaceInnerScoreDirector<Solution_>
- Overrides:
assertWorkingScoreFromScratch
in classAbstractScoreDirector<Solution_,DroolsScoreDirectorFactory<Solution_>>
- Parameters:
workingScore
- never nullcompletedAction
- sometimes null, when assertion fails then the completedAction'sObject.toString()
is included in the exception message- See Also:
InnerScoreDirectorFactory.assertScoreFromScratch(Solution_)
-
getConstraintMatchTotals
public Collection<ConstraintMatchTotal> getConstraintMatchTotals()
Description copied from interface:ScoreDirector
Explains theScore
ofScoreDirector.calculateScore()
by splitting it up perConstraint
.The sum of
ConstraintMatchTotal.getScore()
equalsScoreDirector.calculateScore()
.Call
ScoreDirector.calculateScore()
before calling this method, unless that method has already been called since the lastPlanningVariable
changes.- Specified by:
getConstraintMatchTotals
in interfaceScoreDirector<Solution_>
- Overrides:
getConstraintMatchTotals
in classDroolsScoreDirector<Solution_>
- Returns:
- never null
- See Also:
ScoreDirector.getConstraintMatchTotalMap()
,ScoreDirector.getIndictmentMap()
-
getConstraintMatchTotalMap
public Map<String,ConstraintMatchTotal> getConstraintMatchTotalMap()
Description copied from interface:ScoreDirector
Explains theScore
ofScoreDirector.calculateScore()
by splitting it up perConstraint
.The sum of
ConstraintMatchTotal.getScore()
equalsScoreDirector.calculateScore()
.Call
ScoreDirector.calculateScore()
before calling this method, unless that method has already been called since the lastPlanningVariable
changes.- Specified by:
getConstraintMatchTotalMap
in interfaceScoreDirector<Solution_>
- Overrides:
getConstraintMatchTotalMap
in classDroolsScoreDirector<Solution_>
- Returns:
- never null, the key is the
constraintId
(to create one, useConstraintMatchTotal.composeConstraintId(String, String)
). - See Also:
ScoreDirector.getIndictmentMap()
-
close
public void close()
Description copied from interface:ScoreDirector
Needs to be called after use because some implementations need to clean up their resources.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceScoreDirector<Solution_>
- Overrides:
close
in classDroolsScoreDirector<Solution_>
-
afterEntityAdded
public void afterEntityAdded(EntityDescriptor<Solution_> entityDescriptor, Object entity)
- Overrides:
afterEntityAdded
in classDroolsScoreDirector<Solution_>
-
beforeVariableChanged
public void beforeVariableChanged(VariableDescriptor variableDescriptor, Object entity)
- Specified by:
beforeVariableChanged
in interfaceScoreDirector<Solution_>
- Overrides:
beforeVariableChanged
in classAbstractScoreDirector<Solution_,DroolsScoreDirectorFactory<Solution_>>
-
afterVariableChanged
public void afterVariableChanged(VariableDescriptor variableDescriptor, Object entity)
- Specified by:
afterVariableChanged
in interfaceScoreDirector<Solution_>
- Overrides:
afterVariableChanged
in classDroolsScoreDirector<Solution_>
-
afterEntityRemoved
public void afterEntityRemoved(EntityDescriptor<Solution_> entityDescriptor, Object entity)
- Overrides:
afterEntityRemoved
in classDroolsScoreDirector<Solution_>
-
afterProblemFactAdded
public void afterProblemFactAdded(Object problemFact)
- Specified by:
afterProblemFactAdded
in interfaceScoreDirector<Solution_>
- Overrides:
afterProblemFactAdded
in classDroolsScoreDirector<Solution_>
-
afterProblemFactRemoved
public void afterProblemFactRemoved(Object problemFact)
- Specified by:
afterProblemFactRemoved
in interfaceScoreDirector<Solution_>
- Overrides:
afterProblemFactRemoved
in classDroolsScoreDirector<Solution_>
-
-