package com.revolsys.predicate; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.function.Predicate; public class OrPredicate<T> implements Predicate<T> { private List<Predicate<T>> predicates = new ArrayList<>(); public OrPredicate() { } public OrPredicate(final Collection<Predicate<T>> predicates) { this.predicates.addAll(predicates); } public OrPredicate(final Predicate<T>... predicates) { this(Arrays.asList(predicates)); } public List<Predicate<T>> getPredicates() { return this.predicates; } public void setPredicates(final List<Predicate<T>> predicates) { this.predicates = predicates; } @Override public boolean test(final T object) { for (final Predicate<T> predicate : this.predicates) { if (predicate.test(object)) { return true; } } return false; } @Override public String toString() { return "OR" + this.predicates; } }