Interface ScoreDirector<Solution_>
-
- Type Parameters:
Solution_- the solution type, the class with thePlanningSolutionannotation
- All Known Subinterfaces:
InnerScoreDirector<Solution_,Score_>
- All Known Implementing Classes:
AbstractScoreDirector,BavetConstraintStreamScoreDirector,DroolsConstraintStreamScoreDirector,DroolsScoreDirector,EasyScoreDirector,IncrementalScoreDirector,TestGenDroolsScoreDirector
public interface ScoreDirector<Solution_>The ScoreDirector holds theworking solutionand calculates theScorefor it.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidafterEntityAdded(Object entity)voidafterEntityRemoved(Object entity)voidafterProblemFactAdded(Object problemFact)voidafterProblemFactRemoved(Object problemFact)voidafterProblemPropertyChanged(Object problemFactOrEntity)voidafterVariableChanged(Object entity, String variableName)voidbeforeEntityAdded(Object entity)voidbeforeEntityRemoved(Object entity)voidbeforeProblemFactAdded(Object problemFact)voidbeforeProblemFactRemoved(Object problemFact)voidbeforeProblemPropertyChanged(Object problemFactOrEntity)voidbeforeVariableChanged(Object entity, String variableName)Solution_getWorkingSolution()ThePlanningSolutionthat is used to calculate theScore.<E> ElookUpWorkingObject(E externalObject)Translates an entity or fact instance (often from anotherThreador JVM) to thisScoreDirector's internal working instance.<E> ElookUpWorkingObjectOrReturnNull(E externalObject)As defined bylookUpWorkingObject(Object), but doesn't fail fast if no workingObject was ever added for the externalObject.voidtriggerVariableListeners()
-
-
-
Method Detail
-
getWorkingSolution
Solution_ getWorkingSolution()
ThePlanningSolutionthat is used to calculate theScore.Because a
Scoreis best calculated incrementally (by deltas), theScoreDirectorneeds to be notified when itsworking solutionchanges.- 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 anotherThreador JVM) to thisScoreDirector's internal working instance. Useful forMove.rebase(ScoreDirector)and in aProblemFactChange.Matching is determined by the
LookUpStrategyTypeonPlanningSolution. Matching uses aPlanningIdby 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 aMove.rebase(ScoreDirector)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
-
-