package com.xebialabs.restito.semantics;
import java.util.function.Predicate;
public class Predicates {
public static <T> Predicate<T> alwaysTrue() {
return input -> true;
}
public static <T> Predicate<T> alwaysFalse() {
return input -> false;
}
public static <T> Predicate<T> not(final Predicate<T> predicate) {
return input -> !predicate.test(input);
}
@SuppressWarnings("unchecked")
public static <T> Predicate<T> and(final Predicate... predicates) {
Predicate<T> result = Predicates.alwaysTrue();
for (Predicate<T> predicate : predicates) {
result = result.and(predicate);
}
return result;
}
}