Thanks, Andrei. That looks great! Is there a reason you've changed the 
signatures on some of the CompletableFuture methods?

E.g. in the JRE,
public <U> CompletableFuture<U> thenApply(Function<? super T,? extends U> 
fn)

has become

public <U> CompletionStage<U> thenApply(Function<? super T, ? extends U> fn)


On Monday, 5 September 2016 09:47:10 UTC+1, Andrei Korzhevskii wrote:
>
> 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