Class EventBus

java.lang.Object
com.landawn.abacus.eventbus.EventBus

public class EventBus extends Object
 
 final Object strSubscriber_1 = new Subscriber() {
     @Override
     public void on(String event) {
     System.out.println("Subscriber: strSubscriber_1, event: " + event);
     }
 };

 final Object anySubscriber_2 = new Object() {
     @Subscribe(threadMode = ThreadMode.DEFAULT, interval = 1000)
     public void anyMethod(Object event) {
     System.out.println("Subscriber: anySubscriber_2, event: " + event);
     }
 };

 final Object anySubscriber_3 = new Object() {
     @Subscribe(threadMode = ThreadMode.DEFAULT, sticky = true)
     public void anyMethod(Object event) {
     System.out.println("Subscriber: anySubscriber_3, event: " + event);
     }
 };

 final EventBus eventBus = EventBus.getDefault();

 eventBus.register(strSubscriber_1);
 eventBus.register(strSubscriber_1);
 eventBus.register(anySubscriber_2, "eventId_2");

 eventBus.post("abc");
 eventBus.postSticky("sticky");
 eventBus.post("eventId_2", "abc");

 eventBus.post(123);
 eventBus.post("eventId_2", 123);

 eventBus.register(anySubscriber_3);
 
 
Author:
haiyang li
  • Constructor Details

    • EventBus

      public EventBus()
    • EventBus

      public EventBus(String identifier)
      Parameters:
      identifier -
    • EventBus

      public EventBus(String identifier, Executor executor)
      Parameters:
      identifier -
      executor -
  • Method Details

    • getDefault

      public static EventBus getDefault()
      Gets the default.
      Returns:
    • identifier

      public String identifier()
      Returns:
    • getSubscribers

      public List<Object> getSubscribers(Class<?> eventType)
      Returns the subscriber which is registered with specified eventType(or its sub types) and null event id.
      Parameters:
      eventType -
      Returns:
    • getSubscribers

      public List<Object> getSubscribers(Class<?> eventType, String eventId)
      Returns the subscriber which is registered with specified eventType(or its sub types) and eventId.
      Parameters:
      eventType -
      eventId -
      Returns:
    • getAllSubscribers

      public List<Object> getAllSubscribers()
      Returns all registered subscribers.
      Returns:
    • register

      public EventBus register(Object subscriber)
      Parameters:
      subscriber -
      Returns:
    • register

      public EventBus register(Object subscriber, String eventId)
      Parameters:
      subscriber -
      eventId -
      Returns:
    • register

      public EventBus register(Object subscriber, ThreadMode threadMode)
      Parameters:
      subscriber -
      threadMode -
      Returns:
    • register

      public EventBus register(Object subscriber, String eventId, ThreadMode threadMode)
      Register the subscriber with the specified eventId and threadMode. If the same register has been registered before, it be over-written with the new specified eventId and threadMode.
      Parameters:
      subscriber -
      eventId -
      threadMode -
      Returns:
      itself
    • register

      public <T> EventBus register(Subscriber<T> subscriber, String eventId)
      Type Parameters:
      T -
      Parameters:
      subscriber - General subscriber (type is Subscriber and parameter type is Object, mostly created by lambda) only can be registered with event id
      eventId -
      Returns:
    • register

      public <T> EventBus register(Subscriber<T> subscriber, String eventId, ThreadMode threadMode)
      Type Parameters:
      T -
      Parameters:
      subscriber - General subscriber (type is Subscriber and parameter type is Object, mostly created by lambda) only can be registered with event id
      eventId -
      threadMode -
      Returns:
    • unregister

      public EventBus unregister(Object subscriber)
      Parameters:
      subscriber -
      Returns:
    • post

      public EventBus post(Object event)
      Parameters:
      event -
      Returns:
    • post

      public EventBus post(String eventId, Object event)
      Parameters:
      eventId -
      event -
      Returns:
    • postSticky

      public EventBus postSticky(Object event)
      Parameters:
      event -
      Returns:
    • postSticky

      public EventBus postSticky(String eventId, Object event)
      Parameters:
      eventId -
      event -
      Returns:
    • removeStickyEvent

      public boolean removeStickyEvent(Object event)
      Remove the sticky event posted with null event id.
      Parameters:
      event -
      Returns:
      true, if successful
    • removeStickyEvent

      public boolean removeStickyEvent(Object event, String eventId)
      Remove the sticky event posted with the specified eventId.
      Parameters:
      event -
      eventId -
      Returns:
      true, if successful
    • removeStickyEvents

      public boolean removeStickyEvents(Class<?> eventType)
      Remove the sticky events which can be assigned to specified eventType and posted with null event id.
      Parameters:
      eventType -
      Returns:
      true if one or one more than sticky events are removed, otherwise, false.
    • removeStickyEvents

      public boolean removeStickyEvents(Class<?> eventType, String eventId)
      Remove the sticky events which can be assigned to specified eventType and posted with the specified eventId.
      Parameters:
      eventType -
      eventId -
      Returns:
      true if one or one more than sticky events are removed, otherwise, false.
    • removeAllStickyEvents

      public void removeAllStickyEvents()
      Removes all sticky events.
    • getStickyEvents

      public List<Object> getStickyEvents(Class<?> eventType)
      Returns the sticky events which can be assigned to specified eventType and posted with null event id.
      Parameters:
      eventType -
      Returns:
    • getStickyEvents

      public List<Object> getStickyEvents(Class<?> eventType, String eventId)
      Returns the sticky events which can be assigned to specified eventType and posted with the specified eventId.
      Parameters:
      eventType -
      eventId -
      Returns: