package edu.berkeley.nlp.util.functional; /** * Created by IntelliJ IDEA. * User: aria42 * Date: Oct 9, 2008 * Time: 6:32:13 PM */ public class Predicates { public static<I> Predicate<I> getTruePredicate() { return new Predicate<I>() { public Boolean apply(I input) { return true; } }; } public static<I> Predicate<I> getInversePredicate(final Predicate<I> pred) { return new Predicate<I>() { public Boolean apply(I input) { return !pred.apply(input); } }; } public static<I> Predicate<I> getOrPredicate(final Predicate<I>...preds) { return new Predicate<I>() { public Boolean apply(I input) { for (Predicate<I> pred: preds) { if (pred.apply(input)) return true; } return false; } }; } public static Predicate getNonNullPredicate() { return new Predicate() { public Boolean apply(Object input) { return input != null; } }; } public static<I> Predicate<I> getAndPredicate(final Predicate<I>...preds) { return new Predicate<I>() { public Boolean apply(I input) { for (Predicate<I> pred: preds) { if (!pred.apply(input)) return false; } return true; } }; } }