Interface ScoreDirector<Solution_>
-
- Type Parameters:
Solution_
- the solution type, the class with thePlanningSolution
annotation
- All Known Subinterfaces:
InnerScoreDirector<Solution_,Score_>
- All Known Implementing Classes:
AbstractScoreDirector
,BavetConstraintStreamScoreDirector
,DrlScoreDirector
,DroolsConstraintStreamScoreDirector
,EasyScoreDirector
,IncrementalScoreDirector
,TestGenDrlScoreDirector
public interface ScoreDirector<Solution_>
The ScoreDirector holds theworking solution
and calculates theScore
for it.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
afterEntityAdded(Object entity)
void
afterEntityRemoved(Object entity)
void
afterProblemFactAdded(Object problemFact)
void
afterProblemFactRemoved(Object problemFact)
void
afterProblemPropertyChanged(Object problemFactOrEntity)
void
afterVariableChanged(Object entity, String variableName)
void
beforeEntityAdded(Object entity)
void
beforeEntityRemoved(Object entity)
void
beforeProblemFactAdded(Object problemFact)
void
beforeProblemFactRemoved(Object problemFact)
void
beforeProblemPropertyChanged(Object problemFactOrEntity)
void
beforeVariableChanged(Object entity, String variableName)
Solution_
getWorkingSolution()
ThePlanningSolution
that is used to calculate theScore
.<E> E
lookUpWorkingObject(E externalObject)
Translates an entity or fact instance (often from anotherThread
or JVM) to thisScoreDirector
's internal working instance.<E> E
lookUpWorkingObjectOrReturnNull(E externalObject)
As defined bylookUpWorkingObject(Object)
, but doesn't fail fast if no workingObject was ever added for the externalObject.void
triggerVariableListeners()
-
-
-
Method Detail
-
getWorkingSolution
Solution_ getWorkingSolution()
ThePlanningSolution
that is used to calculate theScore
.Because a
Score
is best calculated incrementally (by deltas), theScoreDirector
needs to be notified when itsworking solution
changes.- Returns:
- never null
-
beforeEntityAdded
void beforeEntityAdded(Object entity)
-
afterEntityAdded
void afterEntityAdded(Object entity)
-
triggerVariableListeners
void triggerVariableListeners()
-
beforeEntityRemoved
void beforeEntityRemoved(Object entity)
-
afterEntityRemoved
void afterEntityRemoved(Object entity)
-
beforeProblemFactAdded
void beforeProblemFactAdded(Object problemFact)
-
afterProblemFactAdded
void afterProblemFactAdded(Object problemFact)
-
beforeProblemPropertyChanged
void beforeProblemPropertyChanged(Object problemFactOrEntity)
-
afterProblemPropertyChanged
void afterProblemPropertyChanged(Object problemFactOrEntity)
-
beforeProblemFactRemoved
void beforeProblemFactRemoved(Object problemFact)
-
afterProblemFactRemoved
void afterProblemFactRemoved(Object problemFact)
-
lookUpWorkingObject
<E> E lookUpWorkingObject(E externalObject)
Translates an entity or fact instance (often from anotherThread
or JVM) to thisScoreDirector
's internal working instance. Useful for move rebasing and in aProblemChange
.Matching is determined by the
LookUpStrategyType
onPlanningSolution
. Matching uses aPlanningId
by default.- Type Parameters:
E
- the object type- Parameters:
externalObject
- sometimes null- Returns:
- null if externalObject is null
- Throws:
IllegalArgumentException
- if there is no workingObject for externalObject, if it cannot be looked up or if the externalObject's class is not supportedIllegalStateException
- if it cannot be looked up
-
lookUpWorkingObjectOrReturnNull
<E> E lookUpWorkingObjectOrReturnNull(E externalObject)
As defined bylookUpWorkingObject(Object)
, but doesn't fail fast if no workingObject was ever added for the externalObject. It's recommended to uselookUpWorkingObject(Object)
instead, especially in move rebasing code.- Type Parameters:
E
- the object type- Parameters:
externalObject
- sometimes null- Returns:
- null if externalObject is null or if there is no workingObject for externalObject
- Throws:
IllegalArgumentException
- if it cannot be looked up or if the externalObject's class is not supportedIllegalStateException
- if it cannot be looked up
-
-