Abstract implementation of a notification facility. Clients add
EventListeners with addListener and remove them with removeListener.
Notifiers call notifyChanged when they wish to notify listeners.
This queues the listener list on the notification thread, which
eventually dequeues the list and calls notifyListener on each
listener in the list.
Subclasses override acceptsListener and notifyListener
to add type-safe notification. AcceptsListener should return
true if the listener is of the appropriate type; ICUNotifier
itself will ensure the listener is non-null and that the
identical listener is not already registered with the Notifier.
NotifyListener should cast the listener to the appropriate
type and call the appropriate method on the listener.
|