ListenerType - Тип издательяEventType - Тип подписчикаpublic class ListenersHelper<ListenerType,EventType> extends Object
| Modifier and Type | Field and Description |
|---|---|
protected Func2<Object,ListenerType,EventType> |
callListener
Функция вызывающая listener.method( event );
|
protected HashSet<ListenerType> |
listeners
Hard ссылки на подписчиков
|
protected Lock |
lock
Объект по которому происходи синхронизация
|
protected WeakHashMap<ListenerType,Object> |
weakListeners
Soft/Weak ссылки на подписчиков
|
| Constructor and Description |
|---|
ListenersHelper(Func2<Object,ListenerType,EventType> callListFunc)
Конструктор.
|
ListenersHelper(Func2<Object,ListenerType,EventType> callListFunc,
Lock sync)
Конструктор.
|
| Modifier and Type | Method and Description |
|---|---|
Closeable |
addListener(ListenerType listener)
Добавление подписчика.
|
Closeable |
addListener(ListenerType listener,
boolean weakLink)
Добавление подписчика.
|
protected Lock |
createLock()
Создает блокировку ReentrantLock
|
void |
fireEvent(EventType event)
Рассылка уведомления подписчикам
|
Set<ListenerType> |
getListeners()
Получение списка подписчиков
|
Lock |
getLock() |
boolean |
hasListener(ListenerType listener)
Проверка наличия подписчика в списке обработки
|
void |
removeListener(ListenerType listener)
Удаление подписчика из списка обработки
|
protected Lock lock
protected Func2<Object,ListenerType,EventType> callListener
protected HashSet<ListenerType> listeners
protected WeakHashMap<ListenerType,Object> weakListeners
public ListenersHelper(Func2<Object,ListenerType,EventType> callListFunc)
callListFunc - Функция вызывающая listener.method( event );public ListenersHelper(Func2<Object,ListenerType,EventType> callListFunc, Lock sync)
callListFunc - Функция вызывающая listener.method( event );sync - Синхронно производить вызовыpublic Lock getLock()
protected Lock createLock()
public boolean hasListener(ListenerType listener)
listener - подписчикpublic Set<ListenerType> getListeners()
public Closeable addListener(ListenerType listener)
listener - Подписчик.public Closeable addListener(ListenerType listener, boolean weakLink)
listener - Подписчик.weakLink - true - добавить как weak ссылку / false - как hard ссылкуpublic void removeListener(ListenerType listener)
listener - подписчикpublic void fireEvent(EventType event)
event - уведомлениеCopyright © 2017. All rights reserved.