< prev index next >
src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/internal/common/MinimalFuture.java
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
@@ -137,11 +137,11 @@
return (MinimalFuture<T>)
copy.thenApplyAsync(Function.identity(), executor);
}
}
- public <U> MinimalFuture<U> newIncompleteFuture() {
+ public static <U> MinimalFuture<U> newMinimalFuture() {
return new MinimalFuture<>();
}
@Override
public void obtrudeValue(T value) {
@@ -155,6 +155,20 @@
@Override
public String toString() {
return super.toString() + " (id=" + id +")";
}
+
+ public static <U> MinimalFuture<U> of(CompletionStage<U> stage) {
+ MinimalFuture<U> cf = newMinimalFuture();
+ stage.whenComplete((r,t) -> complete(cf, r, t));
+ return cf;
+ }
+
+ private static <U> void complete(CompletableFuture<U> cf, U result, Throwable t) {
+ if (t == null) {
+ cf.complete(result);
+ } else {
+ cf.completeExceptionally(t);
+ }
+ }
}
< prev index next >