Interface that is implemented by containers which allow reducing their visible contents based on a set of filters.
When a set of filters are set, only items that match all the filters are included in the visible contents of the container. Still new items that do not match filters can be added to the container. Multiple filters can be added and the container remembers the state of the filters. When multiple filters are added, all filters must match for an item to be visible in the container.
When an {@link Ordered} or {@link Indexed} container is filtered, alloperations of these interfaces should only use the filtered and sorted contents and the filtered indices to the container. Indices or item identifiers in the public API refer to the visible view unless otherwise stated. However, the addItem*()
methods may add items that will be filtered out after addition or moved to another position based on sorting.
How filtering is performed when a {@link Hierarchical} containerimplements {@link Filterable} is implementation specific and should bedocumented in the implementing class.
Adding items (if supported) to a filtered {@link Ordered} or{@link Indexed} container should insert them immediately after theindicated visible item. However, the unfiltered position of items added at index 0, at index {@link com.vaadin.data.Container#size()} or at anundefined position is up to the implementation.
This API replaces the old Filterable interface, renamed to {@link SimpleFilterable} in Vaadin 6.6.
@since 6.6