Interface SelectionFilter<Solution_,T>

Type Parameters:
Solution_ - the solution type, the class with the PlanningSolution annotation
T - the selection type. On problems using multiple planning variables on a single entity without specifying single variable name, this needs to be Object as variables of both types will be tested.
All Known Implementing Classes:
MovableChainedTrailingValueFilter
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface SelectionFilter<Solution_,T>
Decides on accepting or discarding a selection, which is either a PlanningEntity, a planning value, a Move or a Selector). For example, a pinned PlanningEntity is rejected and therefore never used in a Move.

A filtered selection is considered as not selected, it does not count as an unaccepted selection.

Implementations are expected to be stateless. The solver may choose to reuse instances.