Revision: 9872
Author: [email protected]
Date: Mon Mar 21 14:11:01 2011
Log: Promotes Gin's AsyncProvider to GWT, along with a more general
AsyncCallback than the one in com.google.gwt.user.client.rpc.
Retrofits GWT RPC to use the new callback interface for ease
of use, and for ease of migration for existing GIN users.
Review in http://gwt-code-reviews.appspot.com/1387801
http://code.google.com/p/google-web-toolkit/source/detail?r=9872
Added:
/trunk/user/src/com/google/gwt/core/client/AsyncProvider.java
/trunk/user/src/com/google/gwt/core/client/Callback.java
=======================================
--- /dev/null
+++ /trunk/user/src/com/google/gwt/core/client/AsyncProvider.java Mon Mar
21 14:11:01 2011
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
not
+ * use this file except in compliance with the License. You may obtain a
copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
under
+ * the License.
+ */
+
+package com.google.gwt.core.client;
+
+/**
+ * An object capable of providing an instance of type T asynchronously
+ * via {@link Callback}. For example, the instance might be
+ * created within a GWT.runAsync block using the following template:
+ *
+ * <pre style=code>
+ * public void get(final Callback<T, Throwable> callback) {
+ * GWT.runAsync(new RunAsyncCallback() {
+ * public void onSuccess() {
+ * callback.onSuccess(javax.inject.Provider<T>.get());
+ * }
+ * public void onFailure(Throwable ex) {
+ * callback.onFailure(ex);
+ * }
+ * }
+ * }
+ * </pre>
+ *
+ * @param <T> the type of the provided value
+ * @param <F> the type returned on failure
+ */
+public interface AsyncProvider<T, F> {
+
+ /**
+ * @param callback Callback used to pass the instance of T or an
exception
+ * if there is an issue creating that instance.
+ */
+ void get(Callback<? super T, ? super F> callback);
+}
=======================================
--- /dev/null
+++ /trunk/user/src/com/google/gwt/core/client/Callback.java Mon Mar 21
14:11:01 2011
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
not
+ * use this file except in compliance with the License. You may obtain a
copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
under
+ * the License.
+ */
+package com.google.gwt.core.client;
+
+/**
+ * A callback for any asynchronous call that can result in success or
failure.
+ *
+ * @param <T> The type returned on success
+ * @param <F> The type returned on failure
+ */
+public interface Callback<T, F> {
+
+ /**
+ * Called when an asynchronous call fails to complete normally.
+ *
+ * @param reason failure encountered
+ */
+ void onFailure(F reason);
+
+ /**
+ * Called when an asynchronous call completes successfully.
+ *
+ * @param result the value returned
+ */
+ void onSuccess(T result);
+}
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors