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

  • All Implemented Interfaces:
    BaseBus<E,​S>, EventBus<E,​S>

    public abstract class EventBusImpl<E,​S extends Subscriber<? extends E>>
    extends java.lang.Object
    implements EventBus<E,​S>
    • Constructor Summary

      Constructors 
      Constructor Description
      EventBusImpl()  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected static <T extends U,​U>
      java.util.Set<T>
      castGenericSet​(java.util.Set<U> o)  
      protected <T extends Subscriber<U>,​U>
      java.util.Set<T>
      eventSubscribers​(java.lang.Class<U> eventType)  
      protected <T extends E>
      void
      findSubscriptions​(@NonNull java.lang.Object listener, TriConsumer<java.lang.Class<T>,​Subscribe,​java.util.function.BiConsumer<java.lang.Object,​T>> consumer)  
      FireResult fire​(@NonNull E event)
      Fires the given event and log all exceptions that occur while executing this event.
      FireResult fireSilently​(@NonNull E event)
      Fires the given event silently.
      protected abstract <T extends E,​B extends Subscriber<T>>
      B
      makeSubscription​(@NonNull java.lang.Class<T> eventClass, @NonNull java.util.function.Consumer<T> handler, @NonNull PostOrder postOrder)  
      protected abstract <H,​T extends E,​B extends Subscriber<T>>
      B
      makeSubscription​(@NonNull java.lang.Class<T> eventClass, @NonNull Subscribe subscribe, @NonNull H listener, @NonNull java.util.function.BiConsumer<H,​T> handler)  
      void register​(@NonNull java.lang.Object listener)
      Registers events for the given listener.
      protected <T extends E>
      void
      register​(java.lang.Class<T> eventClass, S subscriber)  
      protected java.util.List<S> sortedSubscribers​(java.lang.Class<?> eventClass)  
      <T extends E,​U extends Subscriber<T>>
      @NonNull U
      subscribe​(@NonNull java.lang.Class<T> eventClass, @NonNull java.util.function.Consumer<T> consumer)  
      <T extends E,​U extends Subscriber<T>>
      @NonNull U
      subscribe​(@NonNull java.lang.Class<T> eventClass, @NonNull java.util.function.Consumer<T> consumer, @NonNull PostOrder postOrder)  
      <T extends E>
      @NonNull java.util.Set<? extends Subscriber<T>>
      subscribers​(@NonNull java.lang.Class<T> eventClass)
      Gets the subscriptions for the given event class.
      void unregisterAll()  
      void unsubscribe​(@NonNull S subscription)
      Unsubscribes the given Subscriber.
      protected void unsubscribeAll()  
      protected void unsubscribeMany​(java.lang.Iterable<S> subscriptions)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • EventBusImpl

        public EventBusImpl()
    • Method Detail

      • makeSubscription

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

        protected abstract <T extends E,​B extends Subscriber<T>> B makeSubscription​(@NonNull java.lang.Class<T> eventClass,
                                                                                          @NonNull java.util.function.Consumer<T> handler,
                                                                                          @NonNull PostOrder postOrder)
      • register

        public void register​(@NonNull java.lang.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 java.lang.Class<T> eventClass,
                                                                                @NonNull java.util.function.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 java.lang.Class<T> eventClass,
                                                                                @NonNull java.util.function.Consumer<T> consumer,
                                                                                @NonNull PostOrder postOrder)
        Specified by:
        subscribe in interface EventBus<E,​S extends Subscriber<? extends E>>
      • subscribers

        public <T extends E> @NonNull java.util.Set<? extends Subscriber<T>> subscribers​(@NonNull java.lang.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​(java.lang.Class<T> eventClass,
                                              S subscriber)
      • findSubscriptions

        protected <T extends E> void findSubscriptions​(@NonNull java.lang.Object listener,
                                                       TriConsumer<java.lang.Class<T>,​Subscribe,​java.util.function.BiConsumer<java.lang.Object,​T>> consumer)
      • unsubscribe

        public void unsubscribe​(@NonNull 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​(java.lang.Iterable<S> subscriptions)
      • unsubscribeAll

        protected void unsubscribeAll()
      • fire

        public FireResult fire​(@NonNull 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​(@NonNull 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 java.util.List<S> sortedSubscribers​(java.lang.Class<?> eventClass)
      • eventSubscribers

        protected <T extends Subscriber<U>,​U> java.util.Set<T> eventSubscribers​(java.lang.Class<U> eventType)
      • castGenericSet

        protected static <T extends U,​U> java.util.Set<T> castGenericSet​(java.util.Set<U> o)