public class EventBus
extends java.lang.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);
Constructor and Description |
---|
EventBus() |
EventBus(java.lang.String identifier) |
EventBus(java.lang.String identifier,
java.util.concurrent.Executor executor) |
Modifier and Type | Method and Description |
---|---|
java.util.List<java.lang.Object> |
getAllSubscribers(java.lang.Class<?> eventType)
Returns all registered subscribers.
|
static EventBus |
getDefault() |
java.util.List<java.lang.Object> |
getStickyEvents(java.lang.Class<?> eventType)
Returns the sticky events which can be assigned to specified
eventType and posted with null event id. |
java.util.List<java.lang.Object> |
getStickyEvents(java.lang.Class<?> eventType,
java.lang.String eventId)
Returns the sticky events which can be assigned to specified
eventType and posted with the specified eventId . |
java.util.List<java.lang.Object> |
getSubscribers(java.lang.Class<?> eventType)
Returns the subscriber which is registered with specified
eventType (or its sub types) and null event id. |
java.util.List<java.lang.Object> |
getSubscribers(java.lang.Class<?> eventType,
java.lang.String eventId)
Returns the subscriber which is registered with specified
eventType (or its sub types) and eventId . |
java.lang.String |
identifier() |
EventBus |
post(java.lang.Object event) |
EventBus |
post(java.lang.String eventId,
java.lang.Object event) |
EventBus |
postSticky(java.lang.Object event) |
EventBus |
postSticky(java.lang.String eventId,
java.lang.Object event) |
EventBus |
register(java.lang.Object subscriber) |
EventBus |
register(java.lang.Object subscriber,
java.lang.String eventId) |
EventBus |
register(java.lang.Object subscriber,
java.lang.String eventId,
com.landawn.abacus.util.ThreadMode threadMode)
Register the subscriber with the specified
eventId and threadMode . |
EventBus |
register(java.lang.Object subscriber,
com.landawn.abacus.util.ThreadMode threadMode) |
<T> EventBus |
register(Subscriber<T> subscriber,
java.lang.String eventId) |
<T> EventBus |
register(Subscriber<T> subscriber,
java.lang.String eventId,
com.landawn.abacus.util.ThreadMode threadMode) |
void |
removeAllStickyEvents()
Removes all sticky events.
|
boolean |
removeStickyEvent(java.lang.Object event)
Remove the sticky event posted with
null event id. |
boolean |
removeStickyEvent(java.lang.Object event,
java.lang.String eventId)
Remove the sticky event posted with the specified
eventId . |
boolean |
removeStickyEvents(java.lang.Class<?> eventType)
Remove the sticky events which can be assigned to specified
eventType and posted with null event id. |
boolean |
removeStickyEvents(java.lang.Class<?> eventType,
java.lang.String eventId)
Remove the sticky events which can be assigned to specified
eventType and posted with the specified eventId . |
EventBus |
unregister(java.lang.Object subscriber) |
public EventBus()
public EventBus(java.lang.String identifier)
public EventBus(java.lang.String identifier, java.util.concurrent.Executor executor)
public static EventBus getDefault()
public java.lang.String identifier()
public java.util.List<java.lang.Object> getSubscribers(java.lang.Class<?> eventType)
eventType
(or its sub types) and null
event id.eventType
- public java.util.List<java.lang.Object> getSubscribers(java.lang.Class<?> eventType, java.lang.String eventId)
eventType
(or its sub types) and eventId
.eventType
- eventId
- public java.util.List<java.lang.Object> getAllSubscribers(java.lang.Class<?> eventType)
eventType
- public EventBus register(java.lang.Object subscriber)
public EventBus register(java.lang.Object subscriber, java.lang.String eventId)
public EventBus register(java.lang.Object subscriber, com.landawn.abacus.util.ThreadMode threadMode)
public EventBus register(java.lang.Object subscriber, java.lang.String eventId, com.landawn.abacus.util.ThreadMode threadMode)
eventId
and threadMode
.
If the same register has been registered before, it be over-written with the new specified eventId
and threadMode
.subscriber
- eventId
- threadMode
- public <T> EventBus register(Subscriber<T> subscriber, java.lang.String eventId)
subscriber
- General subscriber (type is Subscriber
and parameter type is Object, mostly created by lambda) only can be registered with event ideventId
- public <T> EventBus register(Subscriber<T> subscriber, java.lang.String eventId, com.landawn.abacus.util.ThreadMode threadMode)
subscriber
- General subscriber (type is Subscriber
and parameter type is Object, mostly created by lambda) only can be registered with event ideventId
- threadMode
- public EventBus unregister(java.lang.Object subscriber)
public EventBus post(java.lang.Object event)
public EventBus post(java.lang.String eventId, java.lang.Object event)
public EventBus postSticky(java.lang.Object event)
public EventBus postSticky(java.lang.String eventId, java.lang.Object event)
public boolean removeStickyEvent(java.lang.Object event)
null
event id.event
- public boolean removeStickyEvent(java.lang.Object event, java.lang.String eventId)
eventId
.event
- eventId
- public boolean removeStickyEvents(java.lang.Class<?> eventType)
eventType
and posted with null
event id.eventType
- false
.public boolean removeStickyEvents(java.lang.Class<?> eventType, java.lang.String eventId)
eventType
and posted with the specified eventId
.eventType
- eventId
- false
.public void removeAllStickyEvents()
public java.util.List<java.lang.Object> getStickyEvents(java.lang.Class<?> eventType)
eventType
and posted with null
event id.eventType
- public java.util.List<java.lang.Object> getStickyEvents(java.lang.Class<?> eventType, java.lang.String eventId)
eventType
and posted with the specified eventId
.eventType
- eventId
-