public class Publisher extends Object
WARNING: In order to solve the -lapsed listener- problem the reference to the subscriber stored by the Publisher is weak. This it means that if the Subscriber reference is lost then is also automatically removed from the subscribers list. To avoid this issue ensure that your Subscriber instance is referenced in your object model and exists as long as the Publisher is alive.
Modifier and Type | Field and Description |
---|---|
static int |
EVENT_ALL
The event representing all events.
|
protected Map |
subscribers
The registered subscribers grouped by eventId.
|
Constructor and Description |
---|
Publisher() |
Modifier and Type | Method and Description |
---|---|
Map |
getSubscribers()
Retrieve registered subscribers.
|
List |
getSubscribers(int eventId)
Retrieve registered Subscribers for a specified event.
|
void |
notifyEvent(int eventId,
Object eventInfo)
Interface used to fire events.
|
void |
subscribe(Collection c,
int eventId)
Subscribe a collection subscribers for a concrete event.
|
void |
subscribe(Subscriber subscriber)
Register a subscriber interested in ALL events.
|
void |
subscribe(Subscriber subscriber,
int eventId)
Register a subscriber interested in a single event.
|
void |
unsubscribe(Subscriber subscriber)
Removes a registered subscriber.
|
void |
unsubscribe(Subscriber subscriber,
int eventId)
Removes a registered subscriber.
|
public static final int EVENT_ALL
NOTE: EVENT_ALL=0
is a reserved identifier.
protected Map subscribers
public void subscribe(Subscriber subscriber)
public void subscribe(Subscriber subscriber, int eventId)
eventId
- The event interested in.
NOTE: EVENT_ALL=0
is a reserved identifier.
public void subscribe(Collection c, int eventId)
public void unsubscribe(Subscriber subscriber)
public void unsubscribe(Subscriber subscriber, int eventId)
eventId
- The event interested in.public Map getSubscribers()
public List getSubscribers(int eventId)
public void notifyEvent(int eventId, Object eventInfo)
eventInfo
- The object where event occurs.Copyright © 2012-2015 JBoss by Red Hat. All Rights Reserved.