| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package fr.natan.akkastreamfileprocessingapi.futurecompleteness;
-
- import akka.util.Timeout;
- import scala.Option;
- import scala.collection.IndexedSeq;
- import scala.concurrent.Await;
- import scala.concurrent.Future;
-
- import java.time.Duration;
- import java.util.concurrent.CompletableFuture;
- import java.util.concurrent.Executors;
- import java.util.concurrent.TimeUnit;
- import java.util.concurrent.TimeoutException;
-
-
- public class CompletableFutureBuilder<T> {
-
- public static<T> CompletableFuture<T> buildcompletableFuture1(Future<Option<T>> futureT) {
- CompletableFuture<T> completableFuture = new CompletableFuture<>();
- Executors.newSingleThreadExecutor().submit(() -> {
- while(!futureT.isCompleted()){
- TimeUnit.MILLISECONDS.sleep(100);
- }
- completableFuture.complete(futureT.value().get().get().get());
- return null;
- });
-
- 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()) {
- TimeUnit.MILLISECONDS.sleep(300);
- }
- completableFuture.complete(futureListT.value().get().get());
- return null;
- });
-
- return completableFuture;
- }
-
- }
|