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;
}
};
}
}