No reason for that. I had to implement the code from scratch and didnt pay attention to the signatures. Thanks for the hint!
On Tuesday, September 6, 2016 at 1:48:09 AM UTC+3, Ian Preston wrote: > > 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.
