Interface GenericEventBus<E extends org.refcodes.observer.GenericEvent<?>,O extends org.refcodes.observer.Observer<E>,MATCH extends org.refcodes.observer.EventMatcher<E>,META extends org.refcodes.mixin.EventMetaData,H>

  • Type Parameters:
    E - the element type
    O - the generic type
    MATCH - the generic type
    META - the generic type
    H - the generic type
    All Superinterfaces:
    DispatchStrategyAccessor, org.refcodes.observer.EventMatcher<E>, GenericBusObservable<E,O,MATCH,H>, GenericBusPublisher<E>, org.refcodes.component.HandleLookup<E,O>, org.refcodes.matcher.Matcher<E>, org.refcodes.observer.Publisher<E>
    All Known Subinterfaces:
    EventBus
    All Known Implementing Classes:
    AbstractEventBus, EventBusImpl


    public interface GenericEventBus<E extends org.refcodes.observer.GenericEvent<?>,O extends org.refcodes.observer.Observer<E>,MATCH extends org.refcodes.observer.EventMatcher<E>,META extends org.refcodes.mixin.EventMetaData,H>
    extends GenericBusPublisher<E>, GenericBusObservable<E,O,MATCH,H>, DispatchStrategyAccessor
    The GenericEventBus is the (virtual) machine wide manager for GenericActionEvent handling.

    TIPP: In order to distinguish ActionMetaDataEventImpl instances from each other, create an actions enumeration, enumerating the various event actions you support. Pass the actual action you intend to notify upon to the according constructor, as an Observer you may use the declarative method EventMatcherSugar.actionEqualWith(Object) to test whether your action was notified (or a simple switch case statement).

    • Method Detail

      • publishEvent

        void publishEvent​(E aEvent,
                          DispatchStrategy aDispatchStrategy)
        Publishes an event using the given DispatchStrategy.
        Parameters:
        aEvent - aEvent The event to be published.
        aDispatchStrategy - The DispatchStrategy to be used when publishing the event.
      • onEvent

        String onEvent​(Class<?> aPublisherType,
                       org.refcodes.observer.Observer<E> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes.
        Parameters:
        aPublisherType - The type of the event publisher.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onEvent

        String onEvent​(String aChannel,
                       org.refcodes.observer.Observer<E> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes.
        Parameters:
        aChannel - The channel name on which the event is receivable.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onEvent

        String onEvent​(String aAlias,
                       String aGroup,
                       String aChannel,
                       String aUid,
                       Class<?> aPublisherType,
                       org.refcodes.observer.Observer<E> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes.
        Parameters:
        aAlias - The alias property.
        aGroup - The group property.
        aChannel - The channel property.
        aUid - The UID (Universal-ID) property.
        aPublisherType - The type of the event publisher.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onEvent

        String onEvent​(Enum<?> aAction,
                       Class<?> aPublisherType,
                       org.refcodes.observer.Observer<E> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes.
        Parameters:
        aAction - The action which this represents.
        aPublisherType - The type of the event publisher.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onEvent

        String onEvent​(Enum<?> aAction,
                       String aChannel,
                       org.refcodes.observer.Observer<E> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes.
        Parameters:
        aAction - The action which this represents.
        aChannel - The channel name on which the event is receivable.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onEvent

        String onEvent​(Enum<?> aAction,
                       String aAlias,
                       String aGroup,
                       String aChannel,
                       String aUid,
                       Class<?> aPublisherType,
                       org.refcodes.observer.Observer<E> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes.
        Parameters:
        aAction - The action which this represents.
        aAlias - The alias property.
        aGroup - The group property.
        aChannel - The channel property.
        aUid - The UID (Universal-ID) property.
        aPublisherType - The type of the event publisher.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onEvent

        String onEvent​(Enum<?> aAction,
                       org.refcodes.observer.Observer<E> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes. Your Observable may be of the required type!
        Parameters:
        aAction - The action which this represents.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onAlias

        String onAlias​(String aAlias,
                       O aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given name.
        Parameters:
        aAlias - The name for which to subscribe.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onChannel

        String onChannel​(String aChannel,
                         O aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events for the given channel.
        Parameters:
        aChannel - The channel to which to subscribe to.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onGroup

        String onGroup​(String aGroup,
                       O aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events for the given group.
        Parameters:
        aGroup - The group to which to subscribe to.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onUniversalId

        String onUniversalId​(String aUid,
                             O aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events for the given Universal-ID.
        Parameters:
        aUid - The Universal-ID to which to subscribe to.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onAction

        String onAction​(Enum<?> aAction,
                        O aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events for the given action.
        Parameters:
        aAction - The action to which to subscribe to.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onActions

        String onActions​(O aObserver,
                         Enum<?>... aActions)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events for the given action.
        Parameters:
        aObserver - The observer to be notified.
        aActions - The actions to which to subscribe to.
        Returns:
        A handle to unsubscribe this combination.
      • onCatchAll

        String onCatchAll​(O aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes all events passing the Event-Bus. Call it a "catch-all" hook.
        Parameters:
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onEvent

        <EVT extends EString onEvent​(Class<EVT> aEventType,
                                       Class<?> aPublisherType,
                                       org.refcodes.observer.Observer<EVT> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes. Your Observable may be of the required type!
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aPublisherType - The type of the event publisher.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onEvent

        <EVT extends EString onEvent​(Class<EVT> aEventType,
                                       String aChannel,
                                       org.refcodes.observer.Observer<EVT> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes. Your Observable may be of the required type!
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aChannel - The channel name on which the event is receivable.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onEvent

        <EVT extends EString onEvent​(Class<EVT> aEventType,
                                       String aAlias,
                                       String aGroup,
                                       String aChannel,
                                       String aUid,
                                       Class<?> aPublisherType,
                                       org.refcodes.observer.Observer<EVT> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes. Your Observable may be of the required type!
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aAlias - The alias property.
        aGroup - The group property.
        aChannel - The channel property.
        aUid - The UID (Universal-ID) property.
        aPublisherType - The type of the event publisher.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onEvent

        <EVT extends EString onEvent​(Class<EVT> aEventType,
                                       Enum<?> aAction,
                                       Class<?> aPublisherType,
                                       org.refcodes.observer.Observer<EVT> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes. Your Observable may be of the required type!
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aAction - The action which this represents.
        aPublisherType - The type of the event publisher.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onEvent

        <EVT extends EString onEvent​(Class<EVT> aEventType,
                                       Enum<?> aAction,
                                       String aChannel,
                                       org.refcodes.observer.Observer<EVT> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes. Your Observable may be of the required type!
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aAction - The action which this represents.
        aChannel - The channel name on which the event is receivable.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onEvent

        <EVT extends EString onEvent​(Class<EVT> aEventType,
                                       Enum<?> aAction,
                                       String aAlias,
                                       String aGroup,
                                       String aChannel,
                                       String aUid,
                                       Class<?> aPublisherType,
                                       org.refcodes.observer.Observer<EVT> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes. Your Observable may be of the required type!
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aAction - The action which this represents.
        aAlias - The alias property.
        aGroup - The group property.
        aChannel - The channel property.
        aUid - The UID (Universal-ID) property.
        aPublisherType - The type of the event publisher.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onEvent

        <EVT extends EString onEvent​(Class<EVT> aEventType,
                                       Enum<?> aAction,
                                       org.refcodes.observer.Observer<EVT> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given attributes. Your Observable may be of the required type!
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aAction - The action which this represents.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onType

        <EVT extends EString onType​(Class<EVT> aEventType,
                                      org.refcodes.observer.Observer<EVT> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events of the given type. Your Observable may be of the required type!
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onAlias

        <EVT extends EString onAlias​(Class<EVT> aEventType,
                                       String aName,
                                       org.refcodes.observer.Observer<EVT> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events with the given name.
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aName - The name for which to subscribe.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onChannel

        <EVT extends EString onChannel​(Class<EVT> aEventType,
                                         String aChannel,
                                         org.refcodes.observer.Observer<EVT> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events for the given channel.
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aChannel - The channel to which to subscribe to.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onGroup

        <EVT extends EString onGroup​(Class<EVT> aEventType,
                                       String aGroup,
                                       org.refcodes.observer.Observer<EVT> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events for the given group.
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aGroup - The group to which to subscribe to.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onUniversalId

        <EVT extends EString onUniversalId​(Class<EVT> aEventType,
                                             String aUid,
                                             org.refcodes.observer.Observer<EVT> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events for the given Universal-ID.
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aUid - The Universal-ID to which to subscribe to.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onAction

        <EVT extends EString onAction​(Class<EVT> aEventType,
                                        Enum<?> aAction,
                                        org.refcodes.observer.Observer<EVT> aObserver)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events for the given action.
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aAction - The action to which to subscribe to.
        aObserver - The observer to be notified.
        Returns:
        A handle to unsubscribe this combination.
      • onActions

        <EVT extends EString onActions​(Class<EVT> aEventType,
                                         org.refcodes.observer.Observer<EVT> aObserver,
                                         Enum<?>... aActions)
        Similar to the more generic method GenericBusObservable.subscribe(EventMatcher, Observer) THOUGH subscribes for events for the given action.
        Type Parameters:
        EVT - The type of the event to subscribe for.
        Parameters:
        aEventType - The event type to subscribe for.
        aObserver - The observer to be notified.
        aActions - The actions to which to subscribe to.
        Returns:
        A handle to unsubscribe this combination.
      • publishEvent

        void publishEvent​(Class<?> aPublisherType)
        Fires an event with the according properties.
        Parameters:
        aPublisherType - The type of the event publisher.
      • publishEvent

        void publishEvent​(String aChannel)
        Fires an event with the according properties.
        Parameters:
        aChannel - The channel name on which the event is receivable.
      • publishEvent

        void publishEvent​(String aAlias,
                          String aGroup,
                          String aChannel,
                          String aUid,
                          Class<?> aPublisherType)
        Fires an event with the according properties.
        Parameters:
        aAlias - The alias property.
        aGroup - The group property.
        aChannel - The channel property.
        aUid - The UID (Universal-ID) property.
        aPublisherType - The type of the event publisher.
      • publishEvent

        void publishEvent​(Enum<?> aAction,
                          Class<?> aPublisherType)
        Fires an event with the according properties.
        Parameters:
        aAction - The action which this represents.
        aPublisherType - The type of the event publisher.
      • publishEvent

        void publishEvent​(Enum<?> aAction,
                          String aChannel)
        Fires an event with the according properties.
        Parameters:
        aAction - The action which this represents.
        aChannel - The channel name on which the event is receivable.
      • publishEvent

        void publishEvent​(Enum<?> aAction,
                          String aAlias,
                          String aGroup,
                          String aChannel,
                          String aUid,
                          Class<?> aPublisherType)
        Fires an event with the according properties.
        Parameters:
        aAction - The action which this represents.
        aAlias - The alias property.
        aGroup - The group property.
        aChannel - The channel property.
        aUid - The UID (Universal-ID) property.
        aPublisherType - The type of the event publisher.
      • publishEvent

        void publishEvent​(META aEventMetaData)
        Fires an event with the according properties.
        Parameters:
        aEventMetaData - The Meta-Data to be supplied by the event.
      • publishEvent

        void publishEvent​(Enum<?> aAction,
                          META aEventMetaData)
        Fires an event with the according properties.
        Parameters:
        aAction - The action which this represents.
        aEventMetaData - The Meta-Data to be supplied by the event.
      • publishEvent

        void publishEvent​(Enum<?> aAction)
        Fires an event with the according properties.
        Parameters:
        aAction - The action which this represents.
      • publishEvent

        void publishEvent​(Class<?> aPublisherType,
                          DispatchStrategy aStrategy)
        Fires an event with the according properties.
        Parameters:
        aPublisherType - The type of the event publisher.
        aStrategy - The DispatchStrategy to use when dispatching the event.
      • publishEvent

        void publishEvent​(String aChannel,
                          DispatchStrategy aStrategy)
        Fires an event with the according properties.
        Parameters:
        aChannel - The channel name on which the event is receivable.
        aStrategy - The DispatchStrategy to use when dispatching the event.
      • publishEvent

        void publishEvent​(String aAlias,
                          String aGroup,
                          String aChannel,
                          String aUid,
                          Class<?> aPublisherType,
                          DispatchStrategy aStrategy)
        Fires an event with the according properties.
        Parameters:
        aAlias - The alias property.
        aGroup - The group property.
        aChannel - The channel property.
        aUid - The UID (Universal-ID) property.
        aPublisherType - The type of the event publisher.
        aStrategy - The DispatchStrategy to use when dispatching the event.
      • publishEvent

        void publishEvent​(Enum<?> aAction,
                          Class<?> aPublisherType,
                          DispatchStrategy aStrategy)
        Fires an event with the according properties.
        Parameters:
        aAction - The action which this represents.
        aPublisherType - The type of the event publisher.
        aStrategy - The DispatchStrategy to use when dispatching the event.
      • publishEvent

        void publishEvent​(Enum<?> aAction,
                          String aChannel,
                          DispatchStrategy aStrategy)
        Fires an event with the according properties.
        Parameters:
        aAction - The action which this represents.
        aChannel - The channel name on which the event is receivable.
        aStrategy - The DispatchStrategy to use when dispatching the event.
      • publishEvent

        void publishEvent​(Enum<?> aAction,
                          String aAlias,
                          String aGroup,
                          String aChannel,
                          String aUid,
                          Class<?> aPublisherType,
                          DispatchStrategy aStrategy)
        Fires an event with the according properties.
        Parameters:
        aAction - The action which this represents.
        aAlias - The alias property.
        aGroup - The group property.
        aChannel - The channel property.
        aUid - The UID (Universal-ID) property.
        aPublisherType - The type of the event publisher.
        aStrategy - The DispatchStrategy to use when dispatching the event.
      • publishEvent

        void publishEvent​(META aEventMetaData,
                          DispatchStrategy aStrategy)
        Fires an event with the according properties.
        Parameters:
        aEventMetaData - The Meta-Data to be supplied by the event.
        aStrategy - The DispatchStrategy to use when dispatching the event.
      • publishEvent

        void publishEvent​(Enum<?> aAction,
                          META aEventMetaData,
                          DispatchStrategy aStrategy)
        Fires an event with the according properties.
        Parameters:
        aAction - The action which this represents.
        aEventMetaData - The Meta-Data to be supplied by the event.
        aStrategy - The DispatchStrategy to use when dispatching the event.
      • publishEvent

        void publishEvent​(Enum<?> aAction,
                          DispatchStrategy aStrategy)
        Fires an event with the according properties.
        Parameters:
        aAction - The action which this represents.
        aStrategy - The DispatchStrategy to use when dispatching the event.
      • publishEvent

        void publishEvent​(DispatchStrategy aStrategy)
        Fires an event with the according properties.
        Parameters:
        aStrategy - The DispatchStrategy to use when dispatching the event.