Package xyz.cofe.scn

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

    • Method Detail

      • getScnChangedListeners

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

        default AutoCloseable addScnChangedListener​(ScnListener<Owner,​SCN,​CAUSE> listener)
        Добавляет подписчика на изменения
        Parameters:
        listener - подписчик
        Returns:
        Интерфейс отписки от уведомлений
      • addScnChangedListener

        default 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 AutoCloseable onScn​(TripleConsumer<SCN,​SCN,​CAUSE> listener)
        Добавление подписчика на изменение номера scn
        Parameters:
        listener - подписчик
        Returns:
        отписка от уведомлений
      • scn

        default void scn​(Runnable run)
        Запуск блока кода, для предотвращения преждевремменого уведомления подписчиков. Подписчик будут уведомлены по завершению блока кода
        Parameters:
        run - блок кода
      • scn

        default <T> T scn​(Supplier<T> run)
        Запуск блока кода, для предотвращения преждевремменого уведомления подписчиков. Подписчик будут уведомлены по завершению блока кода
        Type Parameters:
        T - тип результата
        Parameters:
        run - блок кода
        Returns:
        результат выполнения кода