From ce9fc49cb15add0ba9931a8f99df926ebf1de519 Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Wed, 8 Jul 2020 18:17:01 +0200 Subject: [PATCH] Added applySequenceAsync to CompletableFuture utils --- .../concurrency/future/CompletableFutureUtils.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/org/warp/commonutils/concurrency/future/CompletableFutureUtils.java b/src/main/java/org/warp/commonutils/concurrency/future/CompletableFutureUtils.java index 8d69921..9b6758e 100644 --- a/src/main/java/org/warp/commonutils/concurrency/future/CompletableFutureUtils.java +++ b/src/main/java/org/warp/commonutils/concurrency/future/CompletableFutureUtils.java @@ -12,6 +12,7 @@ import java.util.TreeSet; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.util.function.Consumer; +import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -175,4 +176,12 @@ public class CompletableFutureUtils { } return result; } + + public static CompletableFuture applySequenceAsync(T initialValue, Collection>> collection, ExecutorService executorService) { + var result = CompletableFuture.completedFuture(initialValue); + for (Function> item : collection) { + result = result.thenComposeAsync(item, executorService); + } + return result; + } }