/** * Adds a filter for an item property. The filter will be used in addition * to any filter that has been set or added previously. * * @see #addFilter(SerializablePredicate) * @see #addFilterByValue(ValueProvider, Object) * @see #setFilter(ValueProvider, SerializablePredicate) * * @param valueProvider * value provider that gets the property value, not * <code>null</code> * @param valueFilter * filter for testing the property value, not <code>null</code> */ public default <V> void addFilter(ValueProvider<T, V> valueProvider, SerializablePredicate<V> valueFilter) { Objects.requireNonNull(valueProvider, "Value provider cannot be null"); Objects.requireNonNull(valueFilter, "Value filter cannot be null"); addFilter(InMemoryDataProviderHelpers .createValueProviderFilter(valueProvider, valueFilter)); }
/** * Adds a filter that requires an item property to have a specific value. * The property value and the provided value are compared using * {@link Object#equals(Object)}.The filter will be used in addition to any * filter that has been set or added previously. * * @see #setFilterByValue(ValueProvider, Object) * @see #addFilter(SerializablePredicate) * @see #addFilter(ValueProvider, SerializablePredicate) * * @param valueProvider * value provider that gets the property value, not * <code>null</code> * @param requiredValue * the value that the property must have for the filter to pass */ public default <V> void addFilterByValue(ValueProvider<T, V> valueProvider, V requiredValue) { addFilter(InMemoryDataProviderHelpers.createEqualsFilter(valueProvider, requiredValue)); }