public static <T> boolean eval(Predicate<T> predicate, T target) { try { return predicate.eval(target); } catch (Exception e) { throw new RuntimeException( String.format("Cannot evaluate predicate %s on target: %s", predicate, target), e); } }
public static <E> List<E> filter(Iterable<E> items, Predicate<? super E> predicate) { List<E> result = new ArrayList<E>(); for (E e : items) { if (predicate.eval(e).booleanValue()) { result.add(e); } } return result; }
protected List<Argument> getArguments() { List<Argument> result = new ArrayList<Argument>(); for (Argument arg : super.getArguments()) { if (includeInArgumentsPredicate.eval(arg)) { result.add(arg); } } return result; }