I guess you need to super-source this class so the gwt compiler could use 
it.

You can take a look at my initial CompletableFuture implementation here:

https://github.com/nordligulv/gwt/tree/completable-future
https://github.com/nordligulv/gwt/commit/ea70c5358bac3c939cb0c1628a58ccc462cd7423

Feel free to use it but note that I haven't tested it properly yet.



On Monday, September 5, 2016 at 3:28:27 AM UTC+3, Ian Preston wrote:
>
> I'm trying to emulate CompletableFuture by backing directly onto Promise, 
> but when compiling it gives this error: 
> "No source code is available for type 
> java.util.concurrent.CompletableFuture<T>"
> (it finds other JRE classes I've replaced fine)
>
> My source I'm including is below. Am I doing anything illegal?
> ********************************************
> package java.util.concurrent;
>
> import com.google.gwt.user.client.*;
> import jsinterop.annotations.*;
>
> import java.util.function.*;
>
> @JsType(isNative=true, name = "Promise", namespace = JsPackage.GLOBAL)
> public class CompletableFuture<T> implements CompletionStage<T> {
>
>     @JsMethod(name = "then")
>     public native <U> CompletableFuture<U> thenApply(Function<? super T,? 
> extends U> fn);
>
>     @JsMethod(name = "then")
>     public native CompletableFuture<Void> thenAccept(Consumer<? super T> 
> action);
>
>     @JsMethod(name = "then")
>     public native <U> CompletableFuture<U> thenCompose(Function<? super T, 
> ? extends CompletionStage<U>> fn);
>
>     @JsMethod(name = "reject")
>     public native boolean completeExceptionally(Throwable ex);
>
>     @JsMethod(name = "resolve")
>     public native boolean complete(T value);
>
>     @JsMethod(name = "resolve")
>     public static native <U> CompletableFuture<U> completedFuture(U value);
>
>     @JsOverlay
>     public T get() throws InterruptedException, ExecutionException {
>         Window.alert("Calling synchronous get() on CompletableFuture is 
> not possible in Javascript!");
>         throw new IllegalStateException("Unimplemented!");
>     }
> }
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to