public abstract class EventHub
extends java.lang.Object
Consumers can attach to the hub to receive events, Producers can get a dispatcher from the hub to fire events.
Modifier and Type | Class and Description |
---|---|
static interface |
EventHub.Handle
A handle to an attached Consumer.
|
Modifier | Constructor and Description |
---|---|
protected |
EventHub() |
Modifier and Type | Method and Description |
---|---|
abstract EventHub.Handle |
attach(java.lang.Class eventCategory,
java.lang.Object listener)
Attach an event consumer.
|
abstract EventHub.Handle |
attachDisabled(java.lang.Class intf,
java.lang.Object listener)
Same as attach(), but prevents listener from receiving events till
Handle.enable() is called
by the client. |
abstract EventHub.Handle |
attachHub(java.lang.Class eventCategory,
EventHub hub) |
static EventHub |
createPrivateHub() |
abstract <T> T |
getDispatcher(java.lang.Class<T> intf)
Get an Event dispatcher, that can be used to fire events.
|
static EventHub |
getEventHub()
Get the singleton instance.
|
public static EventHub getEventHub()
public static EventHub createPrivateHub()
public abstract <T> T getDispatcher(java.lang.Class<T> intf) throws java.lang.IllegalArgumentException
T
- the category of eventsintf
- the Class object of the event category interface.java.lang.IllegalArgumentException
- if 'intf' is not an Interface or if it is not an Event category.Events
public abstract EventHub.Handle attach(java.lang.Class eventCategory, java.lang.Object listener)
EventHandler
corresponding to the events
it wants to handle. The method name should have an 'on' prefix followed by the event name with first letter
capitalized. For e.g. if an Event category is defined as:
{@code
eventCategory
- the category of events to listen for, this is a Java interface annotated with the @Events
annotation.listener
- public abstract EventHub.Handle attachDisabled(java.lang.Class intf, java.lang.Object listener)
Handle.enable()
is called
by the client.intf
- listener
- public abstract EventHub.Handle attachHub(java.lang.Class eventCategory, EventHub hub)