Class EventBusImpl<E,S extends Subscriber<? extends E>>

java.lang.Object
org.geysermc.event.bus.impl.EventBusImpl<E,S>
All Implemented Interfaces:
BaseBus<E,S>, EventBus<E,S>

public abstract class EventBusImpl<E,S extends Subscriber<? extends E>> extends Object implements EventBus<E,S>
  • Constructor Details

    • EventBusImpl

      public EventBusImpl()
  • Method Details

    • makeSubscription

      protected abstract <H, T extends E, B extends Subscriber<T>> B makeSubscription(@NonNull Class<T> eventClass, @NonNull Subscribe subscribe, @NonNull H listener, @NonNull BiConsumer<H,T> handler)
    • makeSubscription

      protected abstract <T extends E, B extends Subscriber<T>> B makeSubscription(@NonNull Class<T> eventClass, @NonNull Consumer<T> handler, @NonNull PostOrder postOrder)
    • register

      public void register(@NonNull Object listener)
      Description copied from interface: EventBus
      Registers events for the given listener.
      Specified by:
      register in interface EventBus<E,S extends Subscriber<? extends E>>
      Parameters:
      listener - the listener
    • subscribe

      public <T extends E, U extends Subscriber<T>> @NonNull U subscribe(@NonNull Class<T> eventClass, @NonNull Consumer<T> consumer)
      Specified by:
      subscribe in interface EventBus<E,S extends Subscriber<? extends E>>
    • subscribe

      public <T extends E, U extends Subscriber<T>> @NonNull U subscribe(@NonNull Class<T> eventClass, @NonNull Consumer<T> consumer, @NonNull PostOrder postOrder)
      Specified by:
      subscribe in interface EventBus<E,S extends Subscriber<? extends E>>
    • unregisterAll

      public void unregisterAll()
      Specified by:
      unregisterAll in interface EventBus<E,S extends Subscriber<? extends E>>
    • subscribers

      public <T extends E> @NonNull Set<? extends Subscriber<T>> subscribers(@NonNull Class<T> eventClass)
      Description copied from interface: BaseBus
      Gets the subscriptions for the given event class.
      Specified by:
      subscribers in interface BaseBus<E,S extends Subscriber<? extends E>>
      Type Parameters:
      T - the value
      Parameters:
      eventClass - the event class
      Returns:
      the subscriptions for the event class
    • register

      protected <T extends E> void register(Class<T> eventClass, S subscriber)
    • findSubscriptions

      protected <T extends E> void findSubscriptions(@NonNull Object listener, TriConsumer<Class<T>,Subscribe,BiConsumer<Object,T>> consumer)
    • unsubscribe

      public void unsubscribe(S subscription)
      Description copied from interface: BaseBus
      Unsubscribes the given Subscriber.
      Specified by:
      unsubscribe in interface BaseBus<E,S extends Subscriber<? extends E>>
      Parameters:
      subscription - the event subscription
    • unsubscribeMany

      protected void unsubscribeMany(Iterable<S> subscriptions)
    • unsubscribeAll

      protected void unsubscribeAll()
    • fire

      public FireResult fire(E event)
      Description copied from interface: BaseBus
      Fires the given event and log all exceptions that occur while executing this event.
      Specified by:
      fire in interface BaseBus<E,S extends Subscriber<? extends E>>
      Parameters:
      event - the event to fire
    • fireSilently

      public FireResult fireSilently(E event)
      Description copied from interface: BaseBus
      Fires the given event silently.
      Specified by:
      fireSilently in interface BaseBus<E,S extends Subscriber<? extends E>>
      Parameters:
      event - the event to fire
      Returns:
      the result of firing the given event
    • sortedSubscribers

      protected List<S> sortedSubscribers(Class<?> eventClass)
    • eventSubscribers

      protected <T extends Subscriber<U>, U> Set<T> eventSubscribers(Class<U> eventType)
    • castGenericNullableSet

      protected static <T extends U, U> Set<T> castGenericNullableSet(@Nullable Set<U> o)