Interface CollectionEventPublisher<C,​E>

Type Parameters:
C - Тип коллекции
E - Тип элемента коллекции
All Known Subinterfaces:
EventList<E>, EventMap<K,​V>, EventSet<E>
All Known Implementing Classes:
BasicEventList, BasicEventMap, BasicEventSet, ClassSet

public interface CollectionEventPublisher<C,​E>
Подписка на события изменнения коллекции
  • Method Details

    • addCollectionListener

      default java.lang.AutoCloseable addCollectionListener​(boolean weak, CollectionListener<C,​E> listener)
      Добавляет подписчика
      Parameters:
      weak - Добавить как weak (true) ссылку или как обычную (false)
      listener - Подписчик
      Returns:
      Интерфейс для отсоединения подписчика
    • addCollectionListener

      default java.lang.AutoCloseable addCollectionListener​(CollectionListener<C,​E> listener)
      Добавляет подписчика
      Parameters:
      listener - Подписчик
      Returns:
      Интерфейс для отсоединения подписчика
    • removeCollectionListener

      default void removeCollectionListener​(CollectionListener<C,​E> listener)
      Удаление подписчика из списка обработки
      Parameters:
      listener - Подписчик
    • hasCollectionListener

      default boolean hasCollectionListener​(CollectionListener<C,​E> listener)
      Проверка наличия подписчика в списке обработки
      Parameters:
      listener - Подписчик
      Returns:
      true - есть в списке обработки
    • getCollectionListeners

      default java.util.Set<CollectionListener<C,​E>> getCollectionListeners()
      Получение списка подписчиков
      Returns:
      подписчики
    • fireCollectionEvent

      default void fireCollectionEvent​(CollectionEvent<C,​E> event)
      Рассылка уведомления подписчикам
      Parameters:
      event - уведомление
    • withCollectionEventQueue

      default void withCollectionEventQueue​(java.lang.Runnable eventBlock)
      Запустить выполнение кода в блоке, и не рассылать уведомления до завершения блока кода
      Parameters:
      eventBlock - блок кода
    • withCollectionEventQueue

      default <T> T withCollectionEventQueue​(java.util.function.Supplier<T> eventBlock)
      Запустить выполнение кода в блоке, и не рассылать уведомления до завершения блока кода
      Type Parameters:
      T - тип возвращаемого занчения из блока
      Parameters:
      eventBlock - блок кода
      Returns:
      возвращаемое значение
    • getCollectionEventQueue

      default java.util.concurrent.ConcurrentLinkedQueue<CollectionEvent<C,​E>> getCollectionEventQueue()
      Очередь событий
      Returns:
      Очередь событий
    • addCollectionEvent

      default void addCollectionEvent​(CollectionEvent<C,​E> ev)
      Добавляет событие в очередь
      Parameters:
      ev - событие