package org.fluentlenium.core.filter;
import org.fluentlenium.core.domain.FluentWebElement;
import org.fluentlenium.core.search.SearchFilter;
import java.util.Collection;
import java.util.function.Predicate;
import java.util.stream.Collectors;
/**
* Search filter based on a predicate.
*/
public class PredicateFilter implements SearchFilter {
private final Predicate<FluentWebElement> predicate;
/**
* Creates a new predicate search filter.
*
* @param predicate search filter
*/
PredicateFilter(Predicate<FluentWebElement> predicate) {
this.predicate = predicate;
}
@Override
public String getCssFilter() {
return null;
}
@Override
public boolean isCssFilterSupported() {
return false;
}
@Override
public Collection<FluentWebElement> applyFilter(Collection<FluentWebElement> elements) {
return elements.stream().filter(predicate).collect(Collectors.toList());
}
}