Module xyz.cofe.ecolls
Package xyz.cofe.scn
Interface Scn<Owner extends Scn<Owner,SCN,CAUSE>,SCN extends java.lang.Comparable<?>,CAUSE>
- All Known Implementing Classes:
BasicEventList,BasicEventMap,BasicEventSet,ClassNode,ClassSet,IndexSetBasic,SimpleSDGraph,SimpleSDGraphSender
public interface Scn<Owner extends Scn<Owner,SCN,CAUSE>,SCN extends java.lang.Comparable<?>,CAUSE>
Поддержка номера изменений
- Author:
- nt.gocha@gmail.com
-
Method Summary
Modifier and Type Method Description default java.lang.AutoCloseableaddScnChangedListener(boolean weakLink, ScnListener<Owner,SCN,CAUSE> listener)Добавляет подписчика на измененияdefault java.lang.AutoCloseableaddScnChangedListener(ScnListener<Owner,SCN,CAUSE> listener)Добавляет подписчика на измененияdefault voidfireScnChanged(SCN from, SCN to)Рассылает подписчикам уведомление о измении номера SCNdefault <CAUSE> voidfireScnChanged(SCN from, SCN to, CAUSE cause)Рассылает подписчикам уведомление о измении номера SCNdefault java.util.Set<ScnListener<Owner,SCN,CAUSE>>getScnChangedListeners()Возвращает активных подписчиковdefault booleanhasScnChangedListener(ScnListener<Owner,SCN,CAUSE> listener)Проверяет что указанный подписчик имеется в списках рассылкиdefault java.lang.AutoCloseableonScn(TripleConsumer<SCN,SCN,CAUSE> listener)Добавление подписчика на изменение номера scndefault voidremoveAllScnChangedListeners()Удаляет всех подписчиковdefault voidremoveScnChangedListener(ScnListener<Owner,SCN,CAUSE> listener)Удаляет подписчика от уведомленийSCNscn()Возвращает текущий номер измененийdefault voidscn(java.lang.Runnable run)Запуск блока кода, для предотвращения преждевремменого уведомления подписчиков.default <T> Tscn(java.util.function.Supplier<T> run)Запуск блока кода, для предотвращения преждевремменого уведомления подписчиков.
-
Method Details
-
getScnChangedListeners
Возвращает активных подписчиков- Returns:
- подписчики
-
addScnChangedListener
Добавляет подписчика на изменения- Parameters:
listener- подписчик- Returns:
- Интерфейс отписки от уведомлений
-
addScnChangedListener
default java.lang.AutoCloseable addScnChangedListener(boolean weakLink, ScnListener<Owner,SCN,CAUSE> listener)Добавляет подписчика на изменения- Parameters:
weakLink- true - добавить подписчика на weak ссылку / false - как hard ссылкуlistener- подписчик- Returns:
- Интерфейс отписки от уведомлений
-
removeScnChangedListener
Удаляет подписчика от уведомлений- Parameters:
listener- подписчик
-
removeAllScnChangedListeners
default void removeAllScnChangedListeners()Удаляет всех подписчиков -
hasScnChangedListener
Проверяет что указанный подписчик имеется в списках рассылки- Parameters:
listener- подписчик- Returns:
- true - подписчик имеется в списках рассылки
-
scn
SCN scn()Возвращает текущий номер изменений- Returns:
- текущий номер изменения
-
fireScnChanged
Рассылает подписчикам уведомление о измении номера SCN- Parameters:
from- предыдущее значениеto- текущее значение
-
fireScnChanged
Рассылает подписчикам уведомление о измении номера SCN- Type Parameters:
CAUSE- тип причины изменения номера- Parameters:
from- предыдущее значениеto- текущее значениеcause- причина изменения номера (событие)
-
onScn
Добавление подписчика на изменение номера scn- Parameters:
listener- подписчик- Returns:
- отписка от уведомлений
-
scn
default void scn(java.lang.Runnable run)Запуск блока кода, для предотвращения преждевремменого уведомления подписчиков. Подписчик будут уведомлены по завершению блока кода- Parameters:
run- блок кода
-
scn
default <T> T scn(java.util.function.Supplier<T> run)Запуск блока кода, для предотвращения преждевремменого уведомления подписчиков. Подписчик будут уведомлены по завершению блока кода- Type Parameters:
T- тип результата- Parameters:
run- блок кода- Returns:
- результат выполнения кода
-