package ninja.ugly.prevail.event.dispatcher; import com.google.common.eventbus.EventBus; /** * An implementation of the EventDispatcher interface that delegates directly to * Guava's EventBus library. */ public class EventBusEventDispatcher implements EventDispatcher { private final EventBus mEventBus; /** * Constructs an EventBusEventDispatcher wrapping the given EventBus. * <p> * The given EventBus is used directly. Any external operations on the EventBus, * like registration of subscribers or posting of events, will be reflected in * this EventDispatcher, and vice-versa. * * @param eventBus */ public EventBusEventDispatcher(final EventBus eventBus) { mEventBus = eventBus; } /** * {@inheritDoc} */ @Override public void dispatchEvent(final Object event) { mEventBus.post(event); } /** * {@inheritDoc} */ @Override public void register(final Object subscriber) { mEventBus.register(subscriber); } /** * {@inheritDoc} */ @Override public void unregister(final Object subscriber) { mEventBus.unregister(subscriber); } }