Skip to content

Commit

Permalink
refactor(CffuFactoryBuilder): rename/inline methods; throw `Illegal…
Browse files Browse the repository at this point in the history
…ArgumentException` instead `assert` statement
  • Loading branch information
oldratlee committed Feb 24, 2025
1 parent adc0c86 commit 0b252e2
Show file tree
Hide file tree
Showing 6 changed files with 176 additions and 123 deletions.
122 changes: 63 additions & 59 deletions cffu-core/src/main/java/io/foldright/cffu/Cffu.java

Large diffs are not rendered by default.

80 changes: 44 additions & 36 deletions cffu-core/src/main/java/io/foldright/cffu/CffuFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;

import static io.foldright.cffu.CffuFactoryBuilder.cffuScreenedExecutor;
import static io.foldright.cffu.CffuFactoryBuilder.cffuUnscreenedExecutor;
import static io.foldright.cffu.CffuFactoryBuilder.cffuScreened;
import static io.foldright.cffu.CffuFactoryBuilder.cffuUnscreened;
import static java.util.Objects.requireNonNull;


Expand Down Expand Up @@ -134,7 +134,7 @@ public <T> Cffu<T> supplyAsync(Supplier<T> supplier) {
*/
@CheckReturnValue(explanation = "should use the returned Cffu; otherwise, prefer method `runAsync`")
public <T> Cffu<T> supplyAsync(Supplier<T> supplier, Executor executor) {
return create(CompletableFuture.supplyAsync(supplier, cffuScreenedExecutor(executor)));
return create(CompletableFuture.supplyAsync(supplier, cffuScreened(executor)));
}

/**
Expand All @@ -155,7 +155,7 @@ public Cffu<Void> runAsync(Runnable action) {
* @param executor the executor to use for asynchronous execution
*/
public Cffu<Void> runAsync(Runnable action, Executor executor) {
return create(CompletableFuture.runAsync(action, cffuScreenedExecutor(executor)));
return create(CompletableFuture.runAsync(action, cffuScreened(executor)));
}

// endregion
Expand Down Expand Up @@ -185,7 +185,7 @@ public final <T> Cffu<List<T>> mSupplyFailFastAsync(Supplier<? extends T>... sup
*/
@SafeVarargs
public final <T> Cffu<List<T>> mSupplyFailFastAsync(Executor executor, Supplier<? extends T>... suppliers) {
return create(CompletableFutureUtils.mSupplyFailFastAsync(cffuScreenedExecutor(executor), suppliers));
return create(CompletableFutureUtils.mSupplyFailFastAsync(cffuScreened(executor), suppliers));
}

/**
Expand All @@ -209,7 +209,7 @@ public final <T> Cffu<List<T>> mSupplyAllSuccessAsync(
@SafeVarargs
public final <T> Cffu<List<T>> mSupplyAllSuccessAsync(
Executor executor, @Nullable T valueIfFailed, Supplier<? extends T>... suppliers) {
return create(CompletableFutureUtils.mSupplyAllSuccessAsync(cffuScreenedExecutor(executor), valueIfFailed, suppliers));
return create(CompletableFutureUtils.mSupplyAllSuccessAsync(cffuScreened(executor), valueIfFailed, suppliers));
}

/**
Expand All @@ -236,7 +236,8 @@ public final <T> Cffu<List<T>> mSupplyMostSuccessAsync(
public final <T> Cffu<List<T>> mSupplyMostSuccessAsync(
Executor executor, @Nullable T valueIfNotSuccess, long timeout, TimeUnit unit,
Supplier<? extends T>... suppliers) {
return create(CompletableFutureUtils.mSupplyMostSuccessAsync(cffuScreenedExecutor(executor), valueIfNotSuccess, timeout, unit, suppliers));
return create(CompletableFutureUtils.mSupplyMostSuccessAsync(
cffuScreened(executor), valueIfNotSuccess, timeout, unit, suppliers));
}

/**
Expand All @@ -258,7 +259,7 @@ public final <T> Cffu<List<T>> mSupplyAsync(Supplier<? extends T>... suppliers)
@SafeVarargs
public final <T> Cffu<List<T>> mSupplyAsync(
Executor executor, Supplier<? extends T>... suppliers) {
return create(CompletableFutureUtils.mSupplyAsync(cffuScreenedExecutor(executor), suppliers));
return create(CompletableFutureUtils.mSupplyAsync(cffuScreened(executor), suppliers));
}

/**
Expand All @@ -279,7 +280,7 @@ public final <T> Cffu<T> mSupplyAnySuccessAsync(Supplier<? extends T>... supplie
*/
@SafeVarargs
public final <T> Cffu<T> mSupplyAnySuccessAsync(Executor executor, Supplier<? extends T>... suppliers) {
return create(CompletableFutureUtils.mSupplyAnySuccessAsync(cffuScreenedExecutor(executor), suppliers));
return create(CompletableFutureUtils.mSupplyAnySuccessAsync(cffuScreened(executor), suppliers));
}

/**
Expand All @@ -300,7 +301,7 @@ public final <T> Cffu<T> mSupplyAnyAsync(Supplier<? extends T>... suppliers) {
*/
@SafeVarargs
public final <T> Cffu<T> mSupplyAnyAsync(Executor executor, Supplier<? extends T>... suppliers) {
return create(CompletableFutureUtils.mSupplyAnyAsync(cffuScreenedExecutor(executor), suppliers));
return create(CompletableFutureUtils.mSupplyAnyAsync(cffuScreened(executor), suppliers));
}

/**
Expand All @@ -319,7 +320,7 @@ public Cffu<Void> mRunFailFastAsync(Runnable... actions) {
* See the {@link #allFailFastOf allFailFastOf} documentation for the rules of result computation.
*/
public Cffu<Void> mRunFailFastAsync(Executor executor, Runnable... actions) {
return create(CompletableFutureUtils.mRunFailFastAsync(cffuScreenedExecutor(executor), actions));
return create(CompletableFutureUtils.mRunFailFastAsync(cffuScreened(executor), actions));
}

/**
Expand All @@ -337,7 +338,7 @@ public Cffu<Void> mRunAsync(Runnable... actions) {
* See the {@link #allOf allOf} documentation for the rules of result computation.
*/
public Cffu<Void> mRunAsync(Executor executor, Runnable... actions) {
return create(CompletableFutureUtils.mRunAsync(cffuScreenedExecutor(executor), actions));
return create(CompletableFutureUtils.mRunAsync(cffuScreened(executor), actions));
}

/**
Expand All @@ -356,7 +357,7 @@ public Cffu<Void> mRunAnySuccessAsync(Runnable... actions) {
* See the {@link #anySuccessOf anySuccessOf} documentation for the rules of result computation.
*/
public Cffu<Void> mRunAnySuccessAsync(Executor executor, Runnable... actions) {
return create(CompletableFutureUtils.mRunAnySuccessAsync(cffuScreenedExecutor(executor), actions));
return create(CompletableFutureUtils.mRunAnySuccessAsync(cffuScreened(executor), actions));
}

/**
Expand All @@ -374,7 +375,7 @@ public Cffu<Void> mRunAnyAsync(Runnable... actions) {
* See the {@link #anyOf anyOf} documentation for the rules of result computation.
*/
public Cffu<Void> mRunAnyAsync(Executor executor, Runnable... actions) {
return create(CompletableFutureUtils.mRunAnyAsync(cffuScreenedExecutor(executor), actions));
return create(CompletableFutureUtils.mRunAnyAsync(cffuScreened(executor), actions));
}

// endregion
Expand All @@ -395,7 +396,7 @@ public <T1, T2> Cffu<Tuple2<T1, T2>> mSupplyTupleFailFastAsync(
*/
public <T1, T2> Cffu<Tuple2<T1, T2>> mSupplyTupleFailFastAsync(
Executor executor, Supplier<? extends T1> supplier1, Supplier<? extends T2> supplier2) {
return create(CompletableFutureUtils.mSupplyTupleFailFastAsync(cffuScreenedExecutor(executor), supplier1, supplier2));
return create(CompletableFutureUtils.mSupplyTupleFailFastAsync(cffuScreened(executor), supplier1, supplier2));
}

/**
Expand All @@ -412,7 +413,7 @@ public <T1, T2, T3> Cffu<Tuple3<T1, T2, T3>> mSupplyTupleFailFastAsync(
public <T1, T2, T3> Cffu<Tuple3<T1, T2, T3>> mSupplyTupleFailFastAsync(
Executor executor, Supplier<? extends T1> supplier1,
Supplier<? extends T2> supplier2, Supplier<? extends T3> supplier3) {
return create(CompletableFutureUtils.mSupplyTupleFailFastAsync(cffuScreenedExecutor(executor), supplier1, supplier2, supplier3));
return create(CompletableFutureUtils.mSupplyTupleFailFastAsync(cffuScreened(executor), supplier1, supplier2, supplier3));
}

/**
Expand All @@ -430,7 +431,8 @@ public <T1, T2, T3, T4> Cffu<Tuple4<T1, T2, T3, T4>> mSupplyTupleFailFastAsync(
public <T1, T2, T3, T4> Cffu<Tuple4<T1, T2, T3, T4>> mSupplyTupleFailFastAsync(
Executor executor, Supplier<? extends T1> supplier1, Supplier<? extends T2> supplier2,
Supplier<? extends T3> supplier3, Supplier<? extends T4> supplier4) {
return create(CompletableFutureUtils.mSupplyTupleFailFastAsync(cffuScreenedExecutor(executor), supplier1, supplier2, supplier3, supplier4));
return create(CompletableFutureUtils.mSupplyTupleFailFastAsync(
cffuScreened(executor), supplier1, supplier2, supplier3, supplier4));
}

/**
Expand All @@ -449,7 +451,7 @@ public <T1, T2, T3, T4, T5> Cffu<Tuple5<T1, T2, T3, T4, T5>> mSupplyTupleFailFas
Executor executor, Supplier<? extends T1> supplier1, Supplier<? extends T2> supplier2,
Supplier<? extends T3> supplier3, Supplier<? extends T4> supplier4, Supplier<? extends T5> supplier5) {
return create(CompletableFutureUtils.mSupplyTupleFailFastAsync(
cffuScreenedExecutor(executor), supplier1, supplier2, supplier3, supplier4, supplier5));
cffuScreened(executor), supplier1, supplier2, supplier3, supplier4, supplier5));
}

/**
Expand All @@ -471,7 +473,7 @@ public <T1, T2> Cffu<Tuple2<T1, T2>> mSupplyAllSuccessTupleAsync(
*/
public <T1, T2> Cffu<Tuple2<T1, T2>> mSupplyAllSuccessTupleAsync(
Executor executor, Supplier<? extends T1> supplier1, Supplier<? extends T2> supplier2) {
return create(CompletableFutureUtils.mSupplyAllSuccessTupleAsync(cffuScreenedExecutor(executor), supplier1, supplier2));
return create(CompletableFutureUtils.mSupplyAllSuccessTupleAsync(cffuScreened(executor), supplier1, supplier2));
}

/**
Expand All @@ -494,7 +496,7 @@ public <T1, T2, T3> Cffu<Tuple3<T1, T2, T3>> mSupplyAllSuccessTupleAsync(
public <T1, T2, T3> Cffu<Tuple3<T1, T2, T3>> mSupplyAllSuccessTupleAsync(
Executor executor, Supplier<? extends T1> supplier1,
Supplier<? extends T2> supplier2, Supplier<? extends T3> supplier3) {
return create(CompletableFutureUtils.mSupplyAllSuccessTupleAsync(cffuScreenedExecutor(executor), supplier1, supplier2, supplier3));
return create(CompletableFutureUtils.mSupplyAllSuccessTupleAsync(cffuScreened(executor), supplier1, supplier2, supplier3));
}

/**
Expand All @@ -518,7 +520,8 @@ public <T1, T2, T3, T4> Cffu<Tuple4<T1, T2, T3, T4>> mSupplyAllSuccessTupleAsync
public <T1, T2, T3, T4> Cffu<Tuple4<T1, T2, T3, T4>> mSupplyAllSuccessTupleAsync(
Executor executor, Supplier<? extends T1> supplier1, Supplier<? extends T2> supplier2,
Supplier<? extends T3> supplier3, Supplier<? extends T4> supplier4) {
return create(CompletableFutureUtils.mSupplyAllSuccessTupleAsync(cffuScreenedExecutor(executor), supplier1, supplier2, supplier3, supplier4));
return create(CompletableFutureUtils.mSupplyAllSuccessTupleAsync(
cffuScreened(executor), supplier1, supplier2, supplier3, supplier4));
}

/**
Expand All @@ -543,7 +546,7 @@ public <T1, T2, T3, T4, T5> Cffu<Tuple5<T1, T2, T3, T4, T5>> mSupplyAllSuccessTu
Executor executor, Supplier<? extends T1> supplier1, Supplier<? extends T2> supplier2,
Supplier<? extends T3> supplier3, Supplier<? extends T4> supplier4, Supplier<? extends T5> supplier5) {
return create(CompletableFutureUtils.mSupplyAllSuccessTupleAsync(
cffuScreenedExecutor(executor), supplier1, supplier2, supplier3, supplier4, supplier5));
cffuScreened(executor), supplier1, supplier2, supplier3, supplier4, supplier5));
}

/**
Expand All @@ -567,7 +570,8 @@ public <T1, T2> Cffu<Tuple2<T1, T2>> mSupplyMostSuccessTupleAsync(
public <T1, T2> Cffu<Tuple2<T1, T2>> mSupplyMostSuccessTupleAsync(
Executor executor, long timeout, TimeUnit unit,
Supplier<? extends T1> supplier1, Supplier<? extends T2> supplier2) {
return create(CompletableFutureUtils.mSupplyMostSuccessTupleAsync(cffuScreenedExecutor(executor), timeout, unit, supplier1, supplier2));
return create(CompletableFutureUtils.mSupplyMostSuccessTupleAsync(
cffuScreened(executor), timeout, unit, supplier1, supplier2));
}

/**
Expand All @@ -593,7 +597,7 @@ public <T1, T2, T3> Cffu<Tuple3<T1, T2, T3>> mSupplyMostSuccessTupleAsync(
Executor executor, long timeout, TimeUnit unit,
Supplier<? extends T1> supplier1, Supplier<? extends T2> supplier2, Supplier<? extends T3> supplier3) {
return create(CompletableFutureUtils.mSupplyMostSuccessTupleAsync(
cffuScreenedExecutor(executor), timeout, unit, supplier1, supplier2, supplier3));
cffuScreened(executor), timeout, unit, supplier1, supplier2, supplier3));
}

/**
Expand All @@ -619,7 +623,7 @@ public <T1, T2, T3, T4> Cffu<Tuple4<T1, T2, T3, T4>> mSupplyMostSuccessTupleAsyn
Executor executor, long timeout, TimeUnit unit, Supplier<? extends T1> supplier1,
Supplier<? extends T2> supplier2, Supplier<? extends T3> supplier3, Supplier<? extends T4> supplier4) {
return create(CompletableFutureUtils.mSupplyMostSuccessTupleAsync(
cffuScreenedExecutor(executor), timeout, unit, supplier1, supplier2, supplier3, supplier4));
cffuScreened(executor), timeout, unit, supplier1, supplier2, supplier3, supplier4));
}

/**
Expand Down Expand Up @@ -647,7 +651,7 @@ public <T1, T2, T3, T4, T5> Cffu<Tuple5<T1, T2, T3, T4, T5>> mSupplyMostSuccessT
Supplier<? extends T2> supplier2, Supplier<? extends T3> supplier3,
Supplier<? extends T4> supplier4, Supplier<? extends T5> supplier5) {
return create(CompletableFutureUtils.mSupplyMostSuccessTupleAsync(
cffuScreenedExecutor(executor), timeout, unit, supplier1, supplier2, supplier3, supplier4, supplier5));
cffuScreened(executor), timeout, unit, supplier1, supplier2, supplier3, supplier4, supplier5));
}

/**
Expand All @@ -663,7 +667,7 @@ public <T1, T2> Cffu<Tuple2<T1, T2>> mSupplyTupleAsync(
*/
public <T1, T2> Cffu<Tuple2<T1, T2>> mSupplyTupleAsync(
Executor executor, Supplier<? extends T1> supplier1, Supplier<? extends T2> supplier2) {
return create(CompletableFutureUtils.mSupplyTupleAsync(cffuScreenedExecutor(executor), supplier1, supplier2));
return create(CompletableFutureUtils.mSupplyTupleAsync(cffuScreened(executor), supplier1, supplier2));
}

/**
Expand All @@ -680,7 +684,7 @@ public <T1, T2, T3> Cffu<Tuple3<T1, T2, T3>> mSupplyTupleAsync(
public <T1, T2, T3> Cffu<Tuple3<T1, T2, T3>> mSupplyTupleAsync(
Executor executor, Supplier<? extends T1> supplier1,
Supplier<? extends T2> supplier2, Supplier<? extends T3> supplier3) {
return create(CompletableFutureUtils.mSupplyTupleAsync(cffuScreenedExecutor(executor), supplier1, supplier2, supplier3));
return create(CompletableFutureUtils.mSupplyTupleAsync(cffuScreened(executor), supplier1, supplier2, supplier3));
}

/**
Expand All @@ -698,7 +702,8 @@ public <T1, T2, T3, T4> Cffu<Tuple4<T1, T2, T3, T4>> mSupplyTupleAsync(
public <T1, T2, T3, T4> Cffu<Tuple4<T1, T2, T3, T4>> mSupplyTupleAsync(
Executor executor, Supplier<? extends T1> supplier1, Supplier<? extends T2> supplier2,
Supplier<? extends T3> supplier3, Supplier<? extends T4> supplier4) {
return create(CompletableFutureUtils.mSupplyTupleAsync(cffuScreenedExecutor(executor), supplier1, supplier2, supplier3, supplier4));
return create(CompletableFutureUtils.mSupplyTupleAsync(
cffuScreened(executor), supplier1, supplier2, supplier3, supplier4));
}

/**
Expand All @@ -717,7 +722,7 @@ public <T1, T2, T3, T4, T5> Cffu<Tuple5<T1, T2, T3, T4, T5>> mSupplyTupleAsync(
Executor executor, Supplier<? extends T1> supplier1, Supplier<? extends T2> supplier2,
Supplier<? extends T3> supplier3, Supplier<? extends T4> supplier4, Supplier<? extends T5> supplier5) {
return create(CompletableFutureUtils.mSupplyTupleAsync(
cffuScreenedExecutor(executor), supplier1, supplier2, supplier3, supplier4, supplier5));
cffuScreened(executor), supplier1, supplier2, supplier3, supplier4, supplier5));
}

// endregion
Expand Down Expand Up @@ -795,7 +800,7 @@ public final <T> Cffu<List<T>> allSuccessResultsOf(
public final <T> Cffu<List<T>> mostSuccessResultsOf(
@Nullable T valueIfNotSuccess, long timeout, TimeUnit unit, CompletionStage<? extends T>... cfs) {
return create(CompletableFutureUtils.mostSuccessResultsOf(
cffuScreenedExecutor(cffuExecutor), valueIfNotSuccess, timeout, unit, cfs));
cffuScreened(cffuExecutor), valueIfNotSuccess, timeout, unit, cfs));
}

/**
Expand Down Expand Up @@ -1018,7 +1023,7 @@ public <T1, T2, T3, T4, T5> Cffu<Tuple5<T1, T2, T3, T4, T5>> allSuccessTupleOf(
@Contract(pure = true)
public <T1, T2> Cffu<Tuple2<T1, T2>> mostSuccessTupleOf(
long timeout, TimeUnit unit, CompletionStage<? extends T1> cf1, CompletionStage<? extends T2> cf2) {
return create(CompletableFutureUtils.mostSuccessTupleOf(cffuScreenedExecutor(cffuExecutor), timeout, unit, cf1, cf2));
return create(CompletableFutureUtils.mostSuccessTupleOf(cffuScreened(cffuExecutor), timeout, unit, cf1, cf2));
}

/**
Expand All @@ -1032,7 +1037,8 @@ public <T1, T2> Cffu<Tuple2<T1, T2>> mostSuccessTupleOf(
public <T1, T2, T3> Cffu<Tuple3<T1, T2, T3>> mostSuccessTupleOf(
long timeout, TimeUnit unit,
CompletionStage<? extends T1> cf1, CompletionStage<? extends T2> cf2, CompletionStage<? extends T3> cf3) {
return create(CompletableFutureUtils.mostSuccessTupleOf(cffuScreenedExecutor(cffuExecutor), timeout, unit, cf1, cf2, cf3));
return create(CompletableFutureUtils.mostSuccessTupleOf(
cffuScreened(cffuExecutor), timeout, unit, cf1, cf2, cf3));
}

/**
Expand All @@ -1047,7 +1053,8 @@ public <T1, T2, T3, T4> Cffu<Tuple4<T1, T2, T3, T4>> mostSuccessTupleOf(
long timeout, TimeUnit unit,
CompletionStage<? extends T1> cf1, CompletionStage<? extends T2> cf2,
CompletionStage<? extends T3> cf3, CompletionStage<? extends T4> cf4) {
return create(CompletableFutureUtils.mostSuccessTupleOf(cffuScreenedExecutor(cffuExecutor), timeout, unit, cf1, cf2, cf3, cf4));
return create(CompletableFutureUtils.mostSuccessTupleOf(
cffuScreened(cffuExecutor), timeout, unit, cf1, cf2, cf3, cf4));
}

/**
Expand All @@ -1062,7 +1069,8 @@ public <T1, T2, T3, T4, T5> Cffu<Tuple5<T1, T2, T3, T4, T5>> mostSuccessTupleOf(
long timeout, TimeUnit unit,
CompletionStage<? extends T1> cf1, CompletionStage<? extends T2> cf2, CompletionStage<? extends T3> cf3,
CompletionStage<? extends T4> cf4, CompletionStage<? extends T5> cf5) {
return create(CompletableFutureUtils.mostSuccessTupleOf(cffuScreenedExecutor(cffuExecutor), timeout, unit, cf1, cf2, cf3, cf4, cf5));
return create(CompletableFutureUtils.mostSuccessTupleOf(
cffuScreened(cffuExecutor), timeout, unit, cf1, cf2, cf3, cf4, cf5));
}

/**
Expand Down Expand Up @@ -1244,7 +1252,7 @@ public Executor delayedExecutor(long delay, TimeUnit unit) {
@Contract(pure = true)
public Executor delayedExecutor(long delay, TimeUnit unit, Executor executor) {
// NOTE: do NOT translate executor to screened executor; same as CompletableFuture.delayedExecutor
return CompletableFutureUtils.delayedExecutor(delay, unit, cffuUnscreenedExecutor(executor));
return CompletableFutureUtils.delayedExecutor(delay, unit, cffuUnscreened(executor));
}

// endregion
Expand Down
Loading

0 comments on commit 0b252e2

Please sign in to comment.