Interface ListVariableListener<Solution_,​Entity_,​Element_>

    • Method Detail

      • afterListVariableElementUnassigned

        void afterListVariableElementUnassigned​(ScoreDirector<Solution_> scoreDirector,
                                                Element_ element)
        The listener must unset all shadow variables it is responsible for when an element is unassigned from the source list variable. For example, a Task's startTime shadow variable must be reset to null after a task is unassigned from Employee.tasks when the move that assigned it there is undone during Construction Heuristic phase.
        Parameters:
        scoreDirector - score director
        element - the unassigned element
      • beforeListVariableChanged

        void beforeListVariableChanged​(ScoreDirector<Solution_> scoreDirector,
                                       Entity_ entity,
                                       int fromIndex,
                                       int toIndex)
        Tells the listener that some elements within the range starting at fromIndex (inclusive) and ending at toIndex (exclusive) will change. Be aware that the afterListVariableChanged(org.optaplanner.core.api.score.director.ScoreDirector<Solution_>, Entity_, int, int) call after the change is done often has a different fromIndex and toIndex because the number of elements in the list variable can change.

        The list variable change includes:

        • Changing position (index) of one or more elements.
        • Removing one or more elements from the list variable.
        • Adding one or more elements to the list variable.
        • Any mix of the above.
        • The range has the following properties:
      • fromIndex is greater than or equal to 0; toIndex is less than or equal to the list variable size.
      • toIndex is greater than or equal to fromIndex.
      • The range contains all elements that are going to be changed.
      • The range may contain elements that are not going to be changed.
      • The range may be empty (fromIndex equals toIndex) if none of the existing list variable elements are going to be changed.
Parameters:
scoreDirector - score director
entity - entity with the changed list variable
fromIndex - low endpoint (inclusive) of the changed range
toIndex - high endpoint (exclusive) of the changed range
Parameters:
scoreDirector - score director
entity - entity with the changed list variable
fromIndex - low endpoint (inclusive) of the changed range
toIndex - high endpoint (exclusive) of the changed range