Package w.eventbus

Class SimpleEventBus

java.lang.Object
w.eventbus.SimpleEventBus
All Implemented Interfaces:
EventBus

public final class SimpleEventBus extends Object implements EventBus
Author:
whilein
  • Constructor Details

    • SimpleEventBus

      public SimpleEventBus()
  • Method Details

    • create

      @NotNull public static @NotNull EventBus create(@NotNull @NotNull org.slf4j.Logger logger, @NotNull @NotNull NamespaceValidator namespaceValidator)
      Создать новый EventBus с определённым логгером
      Parameters:
      logger - Логгер, в котором будет выводиться ошибки слушателей и отладка
      namespaceValidator - Проверка на валидность namespace
      Returns:
      Новый EventBus
    • create

      @NotNull public static @NotNull EventBus create(@NotNull @NotNull NamespaceValidator namespaceValidator)
      Создать новый EventBus
      Parameters:
      namespaceValidator - Проверка на валидность namespace
      Returns:
      Новый EventBus
    • dispatchAsync

      @NotNull public <E extends AsyncEvent> @NotNull CompletableFuture<E> dispatchAsync(@NotNull E event)
      Specified by:
      dispatchAsync in interface EventBus
    • dispatch

      public void dispatch(@NotNull @NotNull Event event)
      Description copied from interface: EventBus
      Отправить событие на все слушатели, которые подписаны на него.
      Specified by:
      dispatch in interface EventBus
      Parameters:
      event - Событие
    • unregister

      public void unregister(@NotNull @NotNull RegisteredSubscription subscription)
      Description copied from interface: EventBus
      Удалить подписку на события
      Specified by:
      unregister in interface EventBus
      Parameters:
      subscription - Подписка
    • unregisterAll

      public void unregisterAll(@NotNull @NotNull Object owner)
      Description copied from interface: EventBus
      Удалить все подписки на события, зарегистрированные из определённого объекта.
      Specified by:
      unregisterAll in interface EventBus
      Parameters:
      owner - Объект, в котором находятся подписки на события
    • unregisterAll

      public void unregisterAll(@NotNull @NotNull Class<?> ownerType)
      Description copied from interface: EventBus
      Удалить все подписки на события, зарегистрированные из определённого класса.
      Specified by:
      unregisterAll in interface EventBus
      Parameters:
      ownerType - Класс, в котором находятся подписки на события
    • unregisterAllByNamespace

      public void unregisterAllByNamespace(@NotNull @NotNull Object namespace)
      Description copied from interface: EventBus
      Удалить все подписки на события, зарегистрированные в определённом неймспейсе.
      Specified by:
      unregisterAllByNamespace in interface EventBus
      Parameters:
      namespace - Неймспейс
    • unregisterAll

      public void unregisterAll()
      Specified by:
      unregisterAll in interface EventBus
    • register

      public void register(@NotNull @NotNull Object namespace, @NotNull @NotNull Object subscription)
      Description copied from interface: EventBus
      Зарегистрировать слушатели из объекта.
      Specified by:
      register in interface EventBus
      Parameters:
      namespace - Неймспейс
      subscription - Объект со слушателями
    • register

      public void register(@NotNull @NotNull Object namespace, @NotNull @NotNull Class<?> subscriptionType)
      Description copied from interface: EventBus
      Зарегистрировать слушатели из класса. Методы, которые слушают события, должны быть статичны.
      Specified by:
      register in interface EventBus
      Parameters:
      namespace - Неймспейс
      subscriptionType - Класс со статичными слушателями
    • register

      public void register(@NotNull @NotNull Object subscription)
      Description copied from interface: EventBus
      Зарегистрировать слушатели из объекта.
      Specified by:
      register in interface EventBus
      Parameters:
      subscription - Объект со слушателями
    • register

      public void register(@NotNull @NotNull Class<?> subscriptionType)
      Description copied from interface: EventBus
      Зарегистрировать слушатели из класса. Методы, которые слушают события, должны быть статичны.
      Specified by:
      register in interface EventBus
      Parameters:
      subscriptionType - Класс со статичными слушателями
    • register

      @NotNull public <E extends Event> @NotNull RegisteredSubscription register(@NotNull @NotNull Object namespace, @NotNull @NotNull Class<E> type, @NotNull @NotNull Consumer<@NotNull E> subscription)
      Description copied from interface: EventBus
      Зарегистрировать подписку на событие.
      Specified by:
      register in interface EventBus
      Type Parameters:
      E - Тип события
      Parameters:
      namespace - Неймспейс
      type - Класс события
      subscription - Слушатель
      Returns:
      Зарегистрированный слушатель
    • register

      @NotNull public <E extends Event> @NotNull RegisteredSubscription register(@NotNull @NotNull Class<E> type, @NotNull @NotNull Consumer<@NotNull E> subscription)
      Description copied from interface: EventBus
      Зарегистрировать подписку на событие.
      Specified by:
      register in interface EventBus
      Type Parameters:
      E - Тип события
      Parameters:
      type - Класс события
      subscription - Слушатель
      Returns:
      Зарегистрированный слушатель
    • register

      @NotNull public <E extends Event> @NotNull RegisteredSubscription register(@NotNull @NotNull Object namespace, @NotNull @NotNull Class<E> type, @NotNull @NotNull PostOrder order, @NotNull @NotNull Consumer<@NotNull E> subscription)
      Description copied from interface: EventBus
      Зарегистрировать подписку на событие.
      Specified by:
      register in interface EventBus
      Type Parameters:
      E - Тип события
      Parameters:
      namespace - Неймспейс
      type - Класс события
      order - Порядок слушателя
      subscription - Подписка
      Returns:
      Зарегистрированный слушатель
    • register

      @NotNull public <E extends Event> @NotNull RegisteredSubscription register(@NotNull @NotNull Class<E> type, @NotNull @NotNull PostOrder order, @NotNull @NotNull Consumer<@NotNull E> subscription)
      Description copied from interface: EventBus
      Зарегистрировать подписку на событие.
      Specified by:
      register in interface EventBus
      Type Parameters:
      E - Тип события
      Parameters:
      type - Класс события
      order - Порядок слушателя
      subscription - Подписка
      Returns:
      Зарегистрированный слушатель