public class CollectionMatchingInstance<T,X>
extends java.lang.Object
implements java.util.function.Function<T,java.util.Optional<X>>
| Constructor and Description |
|---|
CollectionMatchingInstance() |
| Modifier and Type | Method and Description |
|---|---|
java.util.Optional<X> |
apply(java.lang.Object t) |
java.util.function.Function<T,java.util.stream.Stream<X>> |
asStreamFunction() |
java.util.function.Function<T,X> |
asUnwrappedFunction() |
com.aol.cyclops.matcher.Cases<T,X,com.aol.cyclops.matcher.TypedFunction<T,X>> |
cases() |
java.util.Optional<X> |
match(java.lang.Object... t)
Aggregates supplied objects into a List for matching against
|
java.util.Optional<X> |
match(java.lang.Object t) |
<R> java.util.stream.Stream<R> |
matchFromStream(java.util.stream.Stream s)
Each input element can generated a single matched value
|
<R> java.util.stream.Stream<R> |
matchMany(java.lang.Object t) |
<R> java.util.stream.Stream<R> |
matchManyFromStream(java.util.stream.Stream s)
Each input element can generated multiple matched values
|
java.util.Optional<X> |
unapply(com.aol.cyclops.objects.Decomposable decomposableObject)
Immediately decompose the supplied parameter and pass it to the PatternMatcher for matching
|
StreamCase |
whenFromStream()
Create a builder that builds Pattern Matching Cases from Streams of data.
|
IterableCase<X> |
whenIterable()
Create a builder for matching on the disaggregated elements of a collection.
|
public final com.aol.cyclops.matcher.Cases<T,X,com.aol.cyclops.matcher.TypedFunction<T,X>> cases()
public final IterableCase<X> whenIterable()
public final StreamCase whenFromStream()
public java.util.function.Function<T,X> asUnwrappedFunction()
public java.util.function.Function<T,java.util.stream.Stream<X>> asStreamFunction()
public java.util.Optional<X> apply(java.lang.Object t)
public <R> java.util.stream.Stream<R> matchManyFromStream(java.util.stream.Stream s)
s - Stream of data to match against (input to matcher)public <R> java.util.stream.Stream<R> matchMany(java.lang.Object t)
t - input to match against - can generate multiple valuespublic <R> java.util.stream.Stream<R> matchFromStream(java.util.stream.Stream s)
s - Stream of data to match against (input to matcher)public java.util.Optional<X> match(java.lang.Object... t)
assertThat(Cases.of(Case.of((List<Integer> input) -> input.size()==3, input -> "hello"),
Case.of((List<Integer> input) -> input.size()==2, input -> "ignored"),
Case.of((List<Integer> input) -> input.size()==1, input -> "world")).match(1,2,3).get(),is("hello"));
t - Array to match onpublic java.util.Optional<X> match(java.lang.Object t)
t - Object to match against supplied casespublic java.util.Optional<X> unapply(com.aol.cyclops.objects.Decomposable decomposableObject)
decomposableObject - Object to match on after decomposed via unapply method