Package xyz.cofe.scn

Interface Scn<Owner extends Scn<Owner,​SCN,​CAUSE>,​SCN extends java.lang.Comparable<?>,​CAUSE>

All Known Subinterfaces:
EventList<E>, EventMap<K,​V>, EventSet<E>, LongScn<OWNER,​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:
[email protected]
  • Method Summary

    Modifier and Type Method Description
    default java.lang.AutoCloseable addScnChangedListener​(boolean weakLink, ScnListener<Owner,​SCN,​CAUSE> listener)
    Добавляет подписчика на изменения
    default java.lang.AutoCloseable addScnChangedListener​(ScnListener<Owner,​SCN,​CAUSE> listener)
    Добавляет подписчика на изменения
    default void fireScnChanged​(SCN from, SCN to)
    Рассылает подписчикам уведомление о измении номера SCN
    default <CAUSE> void fireScnChanged​(SCN from, SCN to, CAUSE cause)
    Рассылает подписчикам уведомление о измении номера SCN
    default java.util.Set<ScnListener<Owner,​SCN,​CAUSE>> getScnChangedListeners()
    Возвращает активных подписчиков
    default boolean hasScnChangedListener​(ScnListener<Owner,​SCN,​CAUSE> listener)
    Проверяет что указанный подписчик имеется в списках рассылки
    default java.lang.AutoCloseable onScn​(TripleConsumer<SCN,​SCN,​CAUSE> listener)
    Добавление подписчика на изменение номера scn
    default void removeAllScnChangedListeners()
    Удаляет всех подписчиков
    default void removeScnChangedListener​(ScnListener<Owner,​SCN,​CAUSE> listener)
    Удаляет подписчика от уведомлений
    SCN scn()
    Возвращает текущий номер изменений
    default void scn​(java.lang.Runnable run)
    Запуск блока кода, для предотвращения преждевремменого уведомления подписчиков.
    default <T> T scn​(java.util.function.Supplier<T> run)
    Запуск блока кода, для предотвращения преждевремменого уведомления подписчиков.
  • Method Details

    • getScnChangedListeners

      default java.util.Set<ScnListener<Owner,​SCN,​CAUSE>> getScnChangedListeners()
      Возвращает активных подписчиков
      Returns:
      подписчики
    • addScnChangedListener

      default java.lang.AutoCloseable addScnChangedListener​(ScnListener<Owner,​SCN,​CAUSE> listener)
      Добавляет подписчика на изменения
      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

      default void removeScnChangedListener​(ScnListener<Owner,​SCN,​CAUSE> listener)
      Удаляет подписчика от уведомлений
      Parameters:
      listener - подписчик
    • removeAllScnChangedListeners

      default void removeAllScnChangedListeners()
      Удаляет всех подписчиков
    • hasScnChangedListener

      default boolean hasScnChangedListener​(ScnListener<Owner,​SCN,​CAUSE> listener)
      Проверяет что указанный подписчик имеется в списках рассылки
      Parameters:
      listener - подписчик
      Returns:
      true - подписчик имеется в списках рассылки
    • scn

      SCN scn()
      Возвращает текущий номер изменений
      Returns:
      текущий номер изменения
    • fireScnChanged

      default void fireScnChanged​(SCN from, SCN to)
      Рассылает подписчикам уведомление о измении номера SCN
      Parameters:
      from - предыдущее значение
      to - текущее значение
    • fireScnChanged

      default <CAUSE> void fireScnChanged​(SCN from, SCN to, CAUSE cause)
      Рассылает подписчикам уведомление о измении номера SCN
      Type Parameters:
      CAUSE - тип причины изменения номера
      Parameters:
      from - предыдущее значение
      to - текущее значение
      cause - причина изменения номера (событие)
    • onScn

      default java.lang.AutoCloseable onScn​(TripleConsumer<SCN,​SCN,​CAUSE> listener)
      Добавление подписчика на изменение номера 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:
      результат выполнения кода