package fr.natan.akkastreamfileprocessingapi.futurecompleteness; import scala.collection.IndexedSeq; import scala.concurrent.Future; import java.util.Random; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executors; public class CompletableFutureBuilder { public static CompletableFuture buildcompletableFuture1(Future futureT) { CompletableFuture completableFuture = new CompletableFuture<>(); Executors.newSingleThreadExecutor().submit(() -> { while(!futureT.isCompleted()){ Thread.sleep(new Random().nextInt(500-100)+100); } completableFuture.complete(futureT.value().get().get()); return null; }); return completableFuture; } public static CompletableFuture> buildcompletableFuture2(Future> futureListT) { CompletableFuture> completableFuture = new CompletableFuture<>(); Executors.newSingleThreadExecutor().submit(() -> { while(!futureListT.isCompleted()){ Thread.sleep(100); } completableFuture.complete(futureListT.value().get().get()); return null; }); return completableFuture; } }