Interface ScoreDirector<Solution_>
-
- Type Parameters:
Solution_- the solution type, the class with thePlanningSolutionannotation
- All Known Subinterfaces:
InnerScoreDirector<Solution_,Score_>
- All Known Implementing Classes:
AbstractScoreDirector,EasyScoreDirector,IncrementalScoreDirector
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)voidafterListVariableChanged(Object entity, String variableName, int fromIndex, int toIndex)voidafterListVariableElementAssigned(Object entity, String variableName, Object element)voidafterListVariableElementUnassigned(Object entity, String variableName, Object element)voidafterProblemFactAdded(Object problemFact)voidafterProblemFactRemoved(Object problemFact)voidafterProblemPropertyChanged(Object problemFactOrEntity)voidafterVariableChanged(Object entity, String variableName)voidbeforeEntityAdded(Object entity)voidbeforeEntityRemoved(Object entity)voidbeforeListVariableChanged(Object entity, String variableName, int fromIndex, int toIndex)voidbeforeListVariableElementAssigned(Object entity, String variableName, Object element)voidbeforeListVariableElementUnassigned(Object entity, String variableName, Object element)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)
-
beforeListVariableElementAssigned
void beforeListVariableElementAssigned(Object entity, String variableName, Object element)
-
afterListVariableElementAssigned
void afterListVariableElementAssigned(Object entity, String variableName, Object element)
-
beforeListVariableElementUnassigned
void beforeListVariableElementUnassigned(Object entity, String variableName, Object element)
-
afterListVariableElementUnassigned
void afterListVariableElementUnassigned(Object entity, String variableName, Object element)
-
beforeListVariableChanged
void beforeListVariableChanged(Object entity, String variableName, int fromIndex, int toIndex)
-
afterListVariableChanged
void afterListVariableChanged(Object entity, String variableName, int fromIndex, int toIndex)
-
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 for move rebasing and in aProblemChange.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 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
-
-