Interface VariableListener<Entity_>

    • Method Detail

      • requiresUniqueEntityEvents

        default boolean requiresUniqueEntityEvents()
        When set to true, this has a slight performance loss in Planner. When set to false, it's often easier to make the listener implementation correct and fast.
        Returns:
        true to guarantee that each of the before/after methods will only be called once per entity instance per operation type (add, change or remove).
      • beforeEntityAdded

        void beforeEntityAdded​(ScoreDirector scoreDirector,
                               Entity_ entity)
        Parameters:
        scoreDirector - never null
        entity - never null
      • afterEntityAdded

        void afterEntityAdded​(ScoreDirector scoreDirector,
                              Entity_ entity)
        Parameters:
        scoreDirector - never null
        entity - never null
      • beforeVariableChanged

        void beforeVariableChanged​(ScoreDirector scoreDirector,
                                   Entity_ entity)
        Parameters:
        scoreDirector - never null
        entity - never null
      • afterVariableChanged

        void afterVariableChanged​(ScoreDirector scoreDirector,
                                  Entity_ entity)
        Parameters:
        scoreDirector - never null
        entity - never null
      • beforeEntityRemoved

        void beforeEntityRemoved​(ScoreDirector scoreDirector,
                                 Entity_ entity)
        Parameters:
        scoreDirector - never null
        entity - never null
      • afterEntityRemoved

        void afterEntityRemoved​(ScoreDirector scoreDirector,
                                Entity_ entity)
        Parameters:
        scoreDirector - never null
        entity - never null
      • resetWorkingSolution

        default void resetWorkingSolution​(ScoreDirector scoreDirector)
        Called when the entire working solution changes. In this event, the other before..()/after...() methods will not be called. At this point, implementations should clear state, if any.
        Parameters:
        scoreDirector - never null