public class FluentFunctions
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
FluentFunctions.Advice0<R> |
static class |
FluentFunctions.Advice1<T,R> |
static class |
FluentFunctions.Advice2<T1,T2,R> |
static class |
FluentFunctions.Advice3<T1,T2,T3,R> |
static class |
FluentFunctions.FluentBiFunction<T1,T2,R> |
static class |
FluentFunctions.FluentFunction<T,R> |
static class |
FluentFunctions.FluentRunnable<R> |
static class |
FluentFunctions.FluentSupplier<R> |
static class |
FluentFunctions.FluentTriFunction<T1,T2,T3,R> |
Constructor and Description |
---|
FluentFunctions() |
Modifier and Type | Method and Description |
---|---|
static <T1,T2> FluentFunctions.FluentBiFunction<T1,T2,Tuple2<T1,T2>> |
checkedExpression(CheckedBiConsumer<T1,T2> action)
Convert a CheckedBiConsumer into a FluentBiConsumer that returns it's input in a tuple
|
static <T> FluentFunctions.FluentFunction<T,T> |
checkedExpression(CheckedConsumer<T> action)
Convert a checked statement (e.g.
|
static <T1,T2> FluentFunctions.FluentBiFunction<T1,T2,Tuple2<T1,T2>> |
expression(java.util.function.BiConsumer<? super T1,? super T2> action)
Convert a BiConsumer into a FluentBiFunction that returns it's input in a Tuple
|
static <T> FluentFunctions.FluentFunction<T,T> |
expression(java.util.function.Consumer<? super T> action)
Convert a statement (e.g.
|
static <T1,T2,R> FluentFunctions.FluentBiFunction<T1,T2,R> |
of(java.util.function.BiFunction<T1,T2,R> fn)
Convert a BiFunction to a FluentBiFunction
|
static <T,R> FluentFunctions.FluentFunction<T,R> |
of(java.util.function.Function<T,R> fn)
Construct a FluentFunction from a Function
|
static <T1,T2,T3,R> |
of(Function3<T1,T2,T3,R> fn)
Convert a CheckedTriFunction to a FluentTriFunction
|
static <R> FluentFunctions.FluentSupplier<R> |
of(java.util.function.Supplier<R> supplier)
Construct a FluentSupplier from a Supplier
|
static <T1,T2,R> FluentFunctions.FluentBiFunction<T1,T2,R> |
ofChecked(CheckedBiFunction<T1,T2,R> fn)
Construct a FluentBiFunction from a CheckedBiFunction
|
static <T,R> FluentFunctions.FluentFunction<T,R> |
ofChecked(CheckedFunction<T,R> fn)
Construct a FluentFunction from a CheckedFunction
|
static <R> FluentFunctions.FluentSupplier<R> |
ofChecked(CheckedSupplier<R> supplier)
Construct a FluentSupplier from a checked Supplier
|
static <T1,T2,T3,R> |
ofChecked(CheckedTriFunction<T1,T2,T3,R> fn)
Convert a CheckedTriFunction to a FluentTriFunction
|
static FluentFunctions.FluentRunnable |
ofRunnable(java.lang.Runnable r) |
public static <R> FluentFunctions.FluentSupplier<R> ofChecked(CheckedSupplier<R> supplier)
FluentFunctions.ofChecked(this::exceptionalFirstTime)
.recover(IOException.class, ()->"hello boo!")
.println()
.getValue()
supplier
- that throws CheckedExcpetionpublic static <R> FluentFunctions.FluentSupplier<R> of(java.util.function.Supplier<R> supplier)
Cache<Object, Integer> cache = CacheBuilder.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build();
called=0;
Supplier<Integer> fn = FluentFunctions.of(this::getOne)
.name("myFunction")
.memoize((key,f)->cache.getValue(key,()->f.applyHKT(key)));
fn.getValue();
fn.getValue();
fn.getValue();
//called == 1
supplier
- to make Fluentpublic static FluentFunctions.FluentRunnable ofRunnable(java.lang.Runnable r)
public static <T,R> FluentFunctions.FluentFunction<T,R> ofChecked(CheckedFunction<T,R> fn)
FluentFunctions.ofChecked(this::exceptionalFirstTime)
.recover(IOException.class, in->in+"boo!")
.println()
.applyHKT("hello ")
fn
- CheckedFunctionpublic static <T,R> FluentFunctions.FluentFunction<T,R> of(java.util.function.Function<T,R> fn)
FluentFunctions.of(this::addOne)
.around(advice->advice.proceed(advice.param+1))
.println()
.applyHKT(10)
fn
- Functionpublic static <T1,T2,R> FluentFunctions.FluentBiFunction<T1,T2,R> ofChecked(CheckedBiFunction<T1,T2,R> fn)
FluentFunctions.ofChecked(this::exceptionalFirstTime)
.println()
.retry(2,500)
.applyHKT("hello","woo!")
fn
- CheckedBiFunctionpublic static <T1,T2,R> FluentFunctions.FluentBiFunction<T1,T2,R> of(java.util.function.BiFunction<T1,T2,R> fn)
CompletableFuture<Integer> cf = FluentFunctions.of(this::add)
.liftAsync(ex)
.applyHKT(1,1)
fn
- BiFunction to convertpublic static <T1,T2,T3,R> FluentFunctions.FluentTriFunction<T1,T2,T3,R> ofChecked(CheckedTriFunction<T1,T2,T3,R> fn)
FluentFunctions.ofChecked(this::exceptionalFirstTime)
.println()
.retry(2,500)
.applyHKT("hello","woo!","h")
fn
- CheckedTriFunction to convertpublic static <T1,T2,T3,R> FluentFunctions.FluentTriFunction<T1,T2,T3,R> of(Function3<T1,T2,T3,R> fn)
FluentFunctions.of(this::add)
.matches(-1,c->c.hasValues(3).applyHKT(i->3))
.applyHKT(1,1,1)
fn
- TriFunction to convertpublic static <T> FluentFunctions.FluentFunction<T,T> expression(java.util.function.Consumer<? super T> action)
FluentFunctions.expression(System.out::println)
.applyHKT("hello");
//hello
action
- Consumerpublic static <T> FluentFunctions.FluentFunction<T,T> checkedExpression(CheckedConsumer<T> action)
public void print(String input) throws IOException{
System.out.println(input);
}
FluentFunctions.checkedExpression(this::print)
.applyHKT("hello")
action
- public static <T1,T2> FluentFunctions.FluentBiFunction<T1,T2,Tuple2<T1,T2>> expression(java.util.function.BiConsumer<? super T1,? super T2> action)
public void withTwo(Integer a,Integer b){
System.out.println(a+b);
}
FluentFunctions.expression(this::withTwo)
.applyHKT(1,2)
//returns Tuple2[1,2]
action
- BiConsumerpublic static <T1,T2> FluentFunctions.FluentBiFunction<T1,T2,Tuple2<T1,T2>> checkedExpression(CheckedBiConsumer<T1,T2> action)
public void printTwo(String input1,String input2) throws IOException{
System.out.println(input1);
System.out.println(input2);
}
FluentFunctions.checkedExpression(this::printTwo)
.applyHKT("hello","world");
//returns Tuple2["hello","world"]
action
-