I decided to package this up in a standalone library so it can be used until such time that it makes it into a GWT release.
https://github.com/OneGeek/GWT-CompletableFuture On Monday, September 5, 2016 at 4:47:10 AM UTC-4, 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.
