T
- Monadic Type being wrappedpublic interface Comprehender<T>
OptionComprehender<Option> {
public Object map(Option o, Function fn){
return o.map( a-> fn.apply(a));
}
}
Modifier and Type | Method and Description |
---|---|
T |
empty() |
default java.lang.Object |
executeflatMap(T t,
java.util.function.Function fn)
Wrapper around flatMap
|
default java.lang.Object |
filter(T t,
java.util.function.Predicate p)
Wrapper around filter
|
java.lang.Object |
flatMap(T t,
java.util.function.Function fn) |
T |
fromIterator(java.util.Iterator o) |
java.lang.Class |
getTargetClass() |
default boolean |
instanceOfT(java.lang.Object apply) |
default java.lang.Object |
liftAndFlatMap(T t,
java.util.function.Function fn)
A flatMap function that allows flatMapping to a different Monad type
will attempt to lift any non-Monadic values returned into a Monadic form
|
static java.lang.Object |
liftObject(Comprehender comp,
java.lang.Object apply) |
java.lang.Object |
map(T t,
java.util.function.Function fn)
Wrapper around map
|
T |
of(java.lang.Object o) |
default int |
priority() |
default java.lang.Object |
resolveForCrossTypeFlatMap(Comprehender comp,
T apply)
Answers the question how should this type behave when returned in a flatMap function
by another type? For example - Optional uses comp.of(opt.get()) when a value is present
and comp.empty() when no value is present.
|
default T |
unwrap(java.lang.Object o) |
static <T> T |
unwrapOtherMonadTypes(Comprehender<T> comp,
java.lang.Object apply) |
default int priority()
default T unwrap(java.lang.Object o)
default java.lang.Object filter(T t, java.util.function.Predicate p)
t
- Monadic type being wrappedp
- JDK Predicate to wrap t.filter ( i -> p.test(i));
java.lang.Object map(T t, java.util.function.Function fn)
t
- Monadic type being wrappedfn
- JDK Function to wrap t.map( i -> fn.apply(i));
default java.lang.Object liftAndFlatMap(T t, java.util.function.Function fn)
t
- Monad to perform flatMap onfn
- FlatMap function that returns different typedefault java.lang.Object executeflatMap(T t, java.util.function.Function fn)
t
- Monadic type being wrappedfn
- JDK Function to wrap t.flatMap( i -> fn.apply(i));
java.lang.Object flatMap(T t, java.util.function.Function fn)
default boolean instanceOfT(java.lang.Object apply)
T of(java.lang.Object o)
T fromIterator(java.util.Iterator o)
T empty()
static java.lang.Object liftObject(Comprehender comp, java.lang.Object apply)
static <T> T unwrapOtherMonadTypes(Comprehender<T> comp, java.lang.Object apply)
default java.lang.Object resolveForCrossTypeFlatMap(Comprehender comp, T apply)
comp
- apply
- java.lang.Class getTargetClass()