Class BavetConstraintStreamScoreDirector<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>>
- java.lang.Object
-
- org.optaplanner.core.impl.score.director.AbstractScoreDirector<Solution_,Score_,BavetConstraintStreamScoreDirectorFactory<Solution_,Score_>>
-
- org.optaplanner.constraint.streams.bavet.BavetConstraintStreamScoreDirector<Solution_,Score_>
-
- Type Parameters:
Solution_- the solution type, the class with thePlanningSolutionannotation
- All Implemented Interfaces:
AutoCloseable,Cloneable,org.optaplanner.core.api.score.director.ScoreDirector<Solution_>,org.optaplanner.core.impl.score.director.InnerScoreDirector<Solution_,Score_>
public final class BavetConstraintStreamScoreDirector<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>> extends org.optaplanner.core.impl.score.director.AbstractScoreDirector<Solution_,Score_,BavetConstraintStreamScoreDirectorFactory<Solution_,Score_>>
FP streams implementation ofScoreDirector, which only recalculates theScoreof the part of theworking solutionthat changed, instead of the going through the entirePlanningSolution. This is incremental calculation, which is fast.- See Also:
ScoreDirector
-
-
Field Summary
Fields Modifier and Type Field Description protected org.optaplanner.constraint.streams.bavet.BavetConstraintSession<Score_>session-
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 BavetConstraintStreamScoreDirector(BavetConstraintStreamScoreDirectorFactory<Solution_,Score_> scoreDirectorFactory, boolean lookUpEnabled, boolean constraintMatchEnabledPreference)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterEntityAdded(org.optaplanner.core.impl.domain.entity.descriptor.EntityDescriptor<Solution_> entityDescriptor, Object entity)voidafterEntityRemoved(org.optaplanner.core.impl.domain.entity.descriptor.EntityDescriptor<Solution_> entityDescriptor, Object entity)voidafterListVariableChanged(org.optaplanner.core.impl.domain.variable.descriptor.ListVariableDescriptor<Solution_> variableDescriptor, Object entity, int fromIndex, int toIndex)voidafterProblemFactAdded(Object problemFact)voidafterProblemFactRemoved(Object problemFact)voidafterProblemPropertyChanged(Object problemFactOrEntity)voidafterVariableChanged(org.optaplanner.core.impl.domain.variable.descriptor.VariableDescriptor<Solution_> variableDescriptor, Object entity)Score_calculateScore()voidclose()Map<String,org.optaplanner.core.api.score.constraint.ConstraintMatchTotal<Score_>>getConstraintMatchTotalMap()Map<Object,org.optaplanner.core.api.score.constraint.Indictment<Score_>>getIndictmentMap()org.optaplanner.constraint.streams.bavet.BavetConstraintSession<Score_>getSession()booleanisConstraintMatchEnabled()booleanrequiresFlushing()voidsetWorkingSolution(Solution_ workingSolution)-
Methods inherited from class org.optaplanner.core.impl.score.director.AbstractScoreDirector
afterEntityAdded, afterEntityRemoved, afterListVariableChanged, afterListVariableElementAssigned, afterListVariableElementAssigned, afterListVariableElementUnassigned, afterListVariableElementUnassigned, afterVariableChanged, assertExpectedUndoMoveScore, assertExpectedWorkingScore, assertNonNullPlanningIds, assertPredictedScoreFromScratch, assertShadowVariablesAreNotStale, assertWorkingScoreFromScratch, beforeEntityAdded, beforeEntityAdded, beforeEntityRemoved, beforeEntityRemoved, beforeListVariableChanged, beforeListVariableChanged, beforeListVariableElementAssigned, beforeListVariableElementAssigned, beforeListVariableElementUnassigned, beforeListVariableElementUnassigned, beforeProblemFactAdded, beforeProblemFactRemoved, beforeProblemPropertyChanged, beforeVariableChanged, beforeVariableChanged, buildScoreCorruptionAnalysis, buildShadowVariableAnalysis, changeVariableFacade, clone, cloneSolution, cloneWorkingSolution, createChildThreadScoreDirector, doAndProcessMove, doAndProcessMove, getCalculationCount, getScoreDefinition, getScoreDirectorFactory, getSolutionDescriptor, getSupplyManager, getWorkingEntityListRevision, getWorkingSolution, isConstraintConfiguration, isWorkingEntityListDirty, lookUpWorkingObject, lookUpWorkingObjectOrReturnNull, overwriteConstraintMatchEnabledPreference, resetCalculationCount, setAllChangesWillBeUndoneBeforeStepEnds, setCalculatedScore, setWorkingEntityListDirty, toString, triggerVariableListeners
-
-
-
-
Constructor Detail
-
BavetConstraintStreamScoreDirector
public BavetConstraintStreamScoreDirector(BavetConstraintStreamScoreDirectorFactory<Solution_,Score_> scoreDirectorFactory, boolean lookUpEnabled, boolean constraintMatchEnabledPreference)
-
-
Method Detail
-
setWorkingSolution
public void setWorkingSolution(Solution_ workingSolution)
- Specified by:
setWorkingSolutionin interfaceorg.optaplanner.core.impl.score.director.InnerScoreDirector<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>>- Overrides:
setWorkingSolutionin classorg.optaplanner.core.impl.score.director.AbstractScoreDirector<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>,BavetConstraintStreamScoreDirectorFactory<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>>>
-
calculateScore
public Score_ calculateScore()
-
isConstraintMatchEnabled
public boolean isConstraintMatchEnabled()
-
getConstraintMatchTotalMap
public Map<String,org.optaplanner.core.api.score.constraint.ConstraintMatchTotal<Score_>> getConstraintMatchTotalMap()
-
getIndictmentMap
public Map<Object,org.optaplanner.core.api.score.constraint.Indictment<Score_>> getIndictmentMap()
-
requiresFlushing
public boolean requiresFlushing()
-
close
public void close()
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceorg.optaplanner.core.impl.score.director.InnerScoreDirector<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>>- Overrides:
closein classorg.optaplanner.core.impl.score.director.AbstractScoreDirector<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>,BavetConstraintStreamScoreDirectorFactory<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>>>
-
afterEntityAdded
public void afterEntityAdded(org.optaplanner.core.impl.domain.entity.descriptor.EntityDescriptor<Solution_> entityDescriptor, Object entity)
-
afterVariableChanged
public void afterVariableChanged(org.optaplanner.core.impl.domain.variable.descriptor.VariableDescriptor<Solution_> variableDescriptor, Object entity)
- Specified by:
afterVariableChangedin interfaceorg.optaplanner.core.impl.score.director.InnerScoreDirector<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>>- Overrides:
afterVariableChangedin classorg.optaplanner.core.impl.score.director.AbstractScoreDirector<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>,BavetConstraintStreamScoreDirectorFactory<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>>>
-
afterListVariableChanged
public void afterListVariableChanged(org.optaplanner.core.impl.domain.variable.descriptor.ListVariableDescriptor<Solution_> variableDescriptor, Object entity, int fromIndex, int toIndex)
- Specified by:
afterListVariableChangedin interfaceorg.optaplanner.core.impl.score.director.InnerScoreDirector<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>>- Overrides:
afterListVariableChangedin classorg.optaplanner.core.impl.score.director.AbstractScoreDirector<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>,BavetConstraintStreamScoreDirectorFactory<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>>>
-
afterEntityRemoved
public void afterEntityRemoved(org.optaplanner.core.impl.domain.entity.descriptor.EntityDescriptor<Solution_> entityDescriptor, Object entity)
-
afterProblemFactAdded
public void afterProblemFactAdded(Object problemFact)
- Specified by:
afterProblemFactAddedin interfaceorg.optaplanner.core.api.score.director.ScoreDirector<Solution_>- Overrides:
afterProblemFactAddedin classorg.optaplanner.core.impl.score.director.AbstractScoreDirector<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>,BavetConstraintStreamScoreDirectorFactory<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>>>
-
afterProblemPropertyChanged
public void afterProblemPropertyChanged(Object problemFactOrEntity)
- Specified by:
afterProblemPropertyChangedin interfaceorg.optaplanner.core.api.score.director.ScoreDirector<Solution_>- Overrides:
afterProblemPropertyChangedin classorg.optaplanner.core.impl.score.director.AbstractScoreDirector<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>,BavetConstraintStreamScoreDirectorFactory<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>>>
-
afterProblemFactRemoved
public void afterProblemFactRemoved(Object problemFact)
- Specified by:
afterProblemFactRemovedin interfaceorg.optaplanner.core.api.score.director.ScoreDirector<Solution_>- Overrides:
afterProblemFactRemovedin classorg.optaplanner.core.impl.score.director.AbstractScoreDirector<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>,BavetConstraintStreamScoreDirectorFactory<Solution_,Score_ extends org.optaplanner.core.api.score.Score<Score_>>>
-
getSession
public org.optaplanner.constraint.streams.bavet.BavetConstraintSession<Score_> getSession()
-
-