public class Predicates
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
Predicates.PredicateBuilder1<T1> |
static class |
Predicates.PredicateBuilder2<T1,T2> |
static class |
Predicates.PredicateBuilder3<T1,T2,T3> |
static class |
Predicates.PredicateBuilder4<T1,T2,T3,T4> |
static class |
Predicates.PredicateBuilder5<T1,T2,T3,T4,T5> |
Modifier and Type | Field and Description |
---|---|
static java.util.function.Predicate |
__
wildcard predicate
|
Constructor and Description |
---|
Predicates() |
Modifier and Type | Method and Description |
---|---|
static <T1> java.util.function.Predicate<? super T1> |
allOf(java.util.function.Predicate<? super T1>... preds) |
static <Y> java.util.function.Predicate<Y> |
any() |
static <Y> java.util.function.Predicate<Y> |
any(java.lang.Class<Y> c)
Match against any object that is an instance of supplied type
|
static <T1> java.util.function.Predicate<? super T1> |
anyOf(java.util.function.Predicate<? super T1>... preds) |
static <T1,T2,T3> Predicates.PredicateBuilder1<T1> |
decons(Matchable.MTuple1<java.util.function.Predicate<? super T1>> when)
A return a predicate builder for deconstructing a tuple.
|
static <T1,T2,T3> Predicates.PredicateBuilder2<T1,T2> |
decons(Matchable.MTuple2<java.util.function.Predicate<? super T1>,java.util.function.Predicate<? super T2>> when) |
static <T1,T2,T3> Predicates.PredicateBuilder3<T1,T2,T3> |
decons(Matchable.MTuple3<java.util.function.Predicate<? super T1>,java.util.function.Predicate<? super T2>,java.util.function.Predicate<? super T3>> when) |
static <T1,T2,T3,T4> |
decons(Matchable.MTuple4<java.util.function.Predicate<? super T1>,java.util.function.Predicate<? super T2>,java.util.function.Predicate<? super T3>,java.util.function.Predicate<? super T4>> when) |
static <T1,T2,T3,T4,T5> |
decons(Matchable.MTuple5<java.util.function.Predicate<? super T1>,java.util.function.Predicate<? super T2>,java.util.function.Predicate<? super T3>,java.util.function.Predicate<? super T4>,java.util.function.Predicate<? super T5>> when) |
static <T1> java.util.function.Predicate<java.lang.Iterable<? super T1>> |
endsWith(T1... items) |
static <V> java.util.function.Predicate<V> |
eq(V value)
Check for universal equality (Object#equals)
|
static <T1 extends java.lang.Comparable<T1>> |
equals(T1 v) |
static <V> java.util.function.Predicate<Value<? super V>> |
eqv(Value<? super V> value)
test for equivalence
null eqv to absent, embedded value equivalency, non-values converted to values before testing
.
|
static <V> java.util.function.Predicate<V> |
eqv2(Value<? super V> value) |
static <V> java.util.function.Predicate<java.lang.Iterable<? super V>> |
eqvIterable(java.lang.Iterable<? super V> iterable) |
static <T1 extends java.lang.Comparable<T1>> |
greaterThan(T1 v) |
static <T1 extends java.lang.Comparable<T1>> |
greaterThanOrEquals(T1 v) |
static <V> java.util.function.Predicate<V> |
has(V... values)
Recursively compose an Object without specifying a type
|
static <T1> java.util.function.Predicate<java.util.Collection<? super T1>> |
hasItems(java.util.Collection<T1> items) |
static <T1> java.util.function.Predicate<java.util.Collection<? super T1>> |
hasItems(java.util.stream.Stream<T1> items) |
static <T1> java.util.function.Predicate<java.util.Collection<? super T1>> |
hasItems(T1... items) |
static <V> java.util.function.Predicate<V> |
hasWhere(java.util.function.Predicate<V>... values) |
static <T1> java.util.function.Predicate<T1> |
in(T1... values) |
static <T1> java.util.function.Predicate<? super T1> |
instanceOf(java.lang.Class<?> clazz) |
static <V> java.util.function.Predicate<V> |
is(V... values) |
static <V> java.util.function.Predicate<V> |
isWhere(java.util.function.Predicate<V>... values) |
static <T> java.util.function.Predicate<T> |
iterablePresent() |
static <T1 extends java.lang.Comparable<T1>> |
lessThan(T1 v) |
static <T1 extends java.lang.Comparable<T1>> |
lessThanOrEquals(T1 v) |
static <T1> java.util.function.Predicate<? super T1> |
noneOf(java.util.function.Predicate<? super T1>... preds) |
static <T1> java.util.function.Predicate<T1> |
not(java.util.function.Predicate<T1> p) |
static <T1> java.util.function.Predicate<? super T1> |
nullValue() |
static <T> java.util.function.Predicate<T> |
optionalPresent() |
static <T> java.util.function.Predicate<T> |
p(java.util.function.Predicate<T> p)
Method for point-free Predicate definition (helps with lambda type inferencing)
e.g.
|
static <T> java.util.function.Predicate<T> |
some() |
static <T> java.util.function.Predicate<T> |
some(T value)
Alias for eq (results in nicer pattern matching dsl).
|
static <T1> java.util.function.Predicate<java.lang.Iterable<? super T1>> |
startsWith(T1... items) |
static <T> ADTPredicateBuilder<T> |
type(java.lang.Class<T> type)
Recursively decompose and match against case classes of specified type.
|
static <T> java.util.function.Predicate<T> |
valuePresent() |
static <T1> java.util.function.Predicate<? super T1> |
xOf(int x,
java.util.function.Predicate<? super T1>... preds) |
public static <T> java.util.function.Predicate<T> p(java.util.function.Predicate<T> p)
Predicate<Integer> pred = i->i>10;
Predicates.<Integer>p(i->i>10).and(not(p(i<100));
p
- Supplied predicate (normally as a lambda expression)public static <T> java.util.function.Predicate<T> optionalPresent()
public static <T> java.util.function.Predicate<T> valuePresent()
public static <T> java.util.function.Predicate<T> iterablePresent()
public static <T> java.util.function.Predicate<T> some()
public static <T> java.util.function.Predicate<T> some(T value)
value
- Value to check for equalitypublic static final <Y> java.util.function.Predicate<Y> any()
__
public static final <Y> java.util.function.Predicate<Y> any(java.lang.Class<Y> c)
c
- Class type to match againstpublic static <T> ADTPredicateBuilder<T> type(java.lang.Class<T> type)
List<String> result = of(new MyCase2(1,2),new MyCase2(3,4))
.patternMatch(
c->c.is(when(new MyCase2(1,2)),then("one"))
.is(when(new MyCase2(3,4)),then("two"))
.is(when(new MyCase2(3,5)),then("three"))
.is(when(Predicates.type(MyCase.class).isGuard(3,4)),then(()->"two"))
,Matchable.otherwise("n/a")
)
.toListX();
//Arrays.asList("one","two");
type
- Classs type to decomposepublic static <T1,T2,T3> Predicates.PredicateBuilder1<T1> decons(Matchable.MTuple1<java.util.function.Predicate<? super T1>> when)
when
- public static <T1,T2,T3> Predicates.PredicateBuilder2<T1,T2> decons(Matchable.MTuple2<java.util.function.Predicate<? super T1>,java.util.function.Predicate<? super T2>> when)
public static <T1,T2,T3> Predicates.PredicateBuilder3<T1,T2,T3> decons(Matchable.MTuple3<java.util.function.Predicate<? super T1>,java.util.function.Predicate<? super T2>,java.util.function.Predicate<? super T3>> when)
public static <T1,T2,T3,T4> Predicates.PredicateBuilder4<T1,T2,T3,T4> decons(Matchable.MTuple4<java.util.function.Predicate<? super T1>,java.util.function.Predicate<? super T2>,java.util.function.Predicate<? super T3>,java.util.function.Predicate<? super T4>> when)
public static <T1,T2,T3,T4,T5> Predicates.PredicateBuilder5<T1,T2,T3,T4,T5> decons(Matchable.MTuple5<java.util.function.Predicate<? super T1>,java.util.function.Predicate<? super T2>,java.util.function.Predicate<? super T3>,java.util.function.Predicate<? super T4>,java.util.function.Predicate<? super T5>> when)
@SafeVarargs public static <V> java.util.function.Predicate<V> has(V... values)
return Matching.<Expression>whenValues().isType( (Add<Const,Mult> a)-> new Const(1))
.with(__,type(Mult.class).with(__,new Const(0)))
.whenValues().isType( (Add<Mult,Const> a)-> new Const(0)).with(type(Mult.class).with(__,new Const(0)),__)
.whenValues().isType( (Add<Add,Const> a)-> new Const(-100)).with(with(__,new Const(2)),__)
.apply(e).orElse(new Const(-1));
values
- To match against@SafeVarargs public static <V> java.util.function.Predicate<V> hasWhere(java.util.function.Predicate<V>... values)
@SafeVarargs public static <V> java.util.function.Predicate<V> is(V... values)
@SafeVarargs public static <V> java.util.function.Predicate<V> isWhere(java.util.function.Predicate<V>... values)
public static <V> java.util.function.Predicate<V> eq(V value)
value
- public static <V> java.util.function.Predicate<Value<? super V>> eqv(Value<? super V> value)
Stream.of(Maybe.of(2)).filter(eqv(Maybe.of(2))).forEach(System.out::println);
Stream.of(2).filter(eqv(Maybe.of(2))).forEach(System.out::println);
value
- public static <V> java.util.function.Predicate<java.lang.Iterable<? super V>> eqvIterable(java.lang.Iterable<? super V> iterable)
public static <V> java.util.function.Predicate<V> eqv2(Value<? super V> value)
public static <T1> java.util.function.Predicate<T1> not(java.util.function.Predicate<T1> p)
@SafeVarargs public static <T1> java.util.function.Predicate<T1> in(T1... values)
public static <T1 extends java.lang.Comparable<T1>> java.util.function.Predicate<? super T1> greaterThan(T1 v)
public static <T1 extends java.lang.Comparable<T1>> java.util.function.Predicate<? super T1> greaterThanOrEquals(T1 v)
public static <T1 extends java.lang.Comparable<T1>> java.util.function.Predicate<? super T1> lessThan(T1 v)
public static <T1 extends java.lang.Comparable<T1>> java.util.function.Predicate<? super T1> lessThanOrEquals(T1 v)
public static <T1 extends java.lang.Comparable<T1>> java.util.function.Predicate<? super T1> equals(T1 v)
public static <T1> java.util.function.Predicate<? super T1> nullValue()
public static <T1> java.util.function.Predicate<java.util.Collection<? super T1>> hasItems(java.util.Collection<T1> items)
public static <T1> java.util.function.Predicate<java.util.Collection<? super T1>> hasItems(java.util.stream.Stream<T1> items)
@SafeVarargs public static <T1> java.util.function.Predicate<java.util.Collection<? super T1>> hasItems(T1... items)
@SafeVarargs public static <T1> java.util.function.Predicate<java.lang.Iterable<? super T1>> startsWith(T1... items)
@SafeVarargs public static <T1> java.util.function.Predicate<java.lang.Iterable<? super T1>> endsWith(T1... items)
public static <T1> java.util.function.Predicate<? super T1> instanceOf(java.lang.Class<?> clazz)
@SafeVarargs public static <T1> java.util.function.Predicate<? super T1> allOf(java.util.function.Predicate<? super T1>... preds)
@SafeVarargs public static <T1> java.util.function.Predicate<? super T1> anyOf(java.util.function.Predicate<? super T1>... preds)
@SafeVarargs public static <T1> java.util.function.Predicate<? super T1> noneOf(java.util.function.Predicate<? super T1>... preds)
@SafeVarargs public static <T1> java.util.function.Predicate<? super T1> xOf(int x, java.util.function.Predicate<? super T1>... preds)