| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package fr.natan.akkastreamfileprocessingapi.futurecompleteness;
-
- import scala.collection.IndexedSeq;
- import scala.concurrent.Future;
-
- import java.util.concurrent.CompletableFuture;
- import java.util.concurrent.Executors;
- import java.util.concurrent.TimeUnit;
- import java.util.logging.Logger;
-
-
- public class CompletableFutureBuilder<T> {
-
- private static final Logger logger = Logger.getLogger("log");
- public static<T> CompletableFuture<T> buildcompletableFuture1(Future<T> futureT) {
- CompletableFuture<T> completableFuture = new CompletableFuture<>();
-
-
- Executors.newSingleThreadExecutor().submit(() -> {
- while(!futureT.isCompleted()){
- try {
- TimeUnit.MILLISECONDS.sleep(300);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- }
- T task = futureT.value().get().get();
- completableFuture.complete(task);
- });
-
- return completableFuture;
- }
-
- public static <T> CompletableFuture<IndexedSeq<T>> buildcompletableFuture2(Future<IndexedSeq<T>> futureListT) {
-
- CompletableFuture<IndexedSeq<T>> completableFuture = new CompletableFuture<>();
- Executors.newSingleThreadExecutor().submit(() -> {
- while (!futureListT.isCompleted()) {
- try {
- TimeUnit.MILLISECONDS.sleep(300);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- }
-
- IndexedSeq<T> task = futureListT.value().get().get();
- completableFuture.complete(task);
-
- });
-
- return completableFuture;
- }
-
- }
|