Reviewers: rjrjr,

Description:
Adds two protected static methods to EventBus that expose otherwise
inaccessible methods on Event (setSource and dispatch) to subclasses of
EventBus.

This is not a huge deal to me, but, in general, it would be nice to move
my EventBus implementation out of a c.g package. These two methods are
the key to doing so, and the protected static method approach seemed
like a reasonable way to expose them to only a small subset of user code
(namely subclasses of EventBus).


Please review this at http://gwt-code-reviews.appspot.com/1443804/

Affected files:
  user/src/com/google/web/bindery/event/shared/EventBus.java


Index: user/src/com/google/web/bindery/event/shared/EventBus.java
===================================================================
--- user/src/com/google/web/bindery/event/shared/EventBus.java (revision 10188) +++ user/src/com/google/web/bindery/event/shared/EventBus.java (working copy)
@@ -30,6 +30,24 @@
  */
 public abstract class EventBus {

+  /** Invokes {@code event.dispatch} with {@code handler}.
+   *
+   * This allows EventBus implementations in different packages to dispatch
+   * events even though the {@code event.dispatch} method is protected.
+   */
+  protected static <H> void dispatchEvent(Event<H> event, H handler) {
+    event.dispatch(handler);
+  }
+
+  /** Sets {@code source} as the source of {@code event}.
+   *
+   * This allows EventBus implementations in different packages to set an
+ * event source even though the {@code event.setSource} method is protected.
+   */
+  protected static void setSourceOnEvent(Event<?> event, Object source) {
+    event.setSource(source);
+  }
+
   /**
* Adds an unfiltered handler to receive events of this type from all sources.
    * <p>


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to