Class SimpleServiceBus<S extends Service<?>,​CTX extends ServiceContext<S>>

  • Type Parameters:
    S - the generic type of the services to be served.
    CTX - the generic service's context type
    All Implemented Interfaces:
    org.refcodes.mixin.Loggable, ServiceBus<S>

    public class SimpleServiceBus<S extends Service<?>,​CTX extends ServiceContext<S>>
    extends Object
    implements ServiceBus<S>, org.refcodes.mixin.Loggable
    The SimpleServiceBus is a basic implementation of the ServiceBus interface.
    • Field Summary

      • Fields inherited from interface org.refcodes.mixin.Loggable

        RUNTIME_LOGGER_CLASS, RUNTIME_LOGGER_FACTORY_CLASS, RUNTIME_LOGGER_FACTORY_METHOD
    • Constructor Summary

      Constructors 
      Constructor Description
      SimpleServiceBus​(ServiceLookup<S,​CTX> aServiceLookup, org.refcodes.component.ext.observer.ObservableLifeCycleStatusAutomaton aObservableLifecycleAutomaton)
      Constructs the subscriber part of the event bus.
    • Constructor Detail

      • SimpleServiceBus

        public SimpleServiceBus​(ServiceLookup<S,​CTX> aServiceLookup,
                                org.refcodes.component.ext.observer.ObservableLifeCycleStatusAutomaton aObservableLifecycleAutomaton)
        Constructs the subscriber part of the event bus. For doing its job, it needs the list of services which is accessible via the provided service lookup part of the service bus.
        Parameters:
        aServiceLookup - the service lookup
        aObservableLifecycleAutomaton - the observable lifecycle automaton
    • Method Detail

      • hasService

        public boolean hasService​(ServiceMatcher<S> aServiceMatcher)
        Determines whether the given ServiceMatcher will result in a single Service to be looked up. I.e. the ServiceMatcher must result in an unambiguous Service to be identified.
        Specified by:
        hasService in interface ServiceBus<S extends Service<?>>
        Parameters:
        aServiceMatcher - The ServiceMatcher describing the Service for which to look for.
        Returns:
        True in case if exactly one Service is matching the matcher. Else false is returned (either more than one service was identified or none service was identified).
      • registerLifecycleEventDispatcher

        protected void registerLifecycleEventDispatcher​(org.refcodes.component.ext.observer.ObservableLifeCycleStatusAutomaton aObservableLifecycleAutomaton)
        This method registers a life-cycle event listener which dispatches any incoming life-cycle events to the according dispatcher method below.
        Parameters:
        aObservableLifecycleAutomaton - the observable lifecycle automaton
      • onLifecycleEvent

        protected void onLifecycleEvent​(org.refcodes.component.ext.observer.LifeCycleRequestEvent aEvent)
        This method is used to handle life-cycle events and inform the according services of any life-cycle state changes. Use the registerLifecycleEventDispatcher(ObservableLifeCycleStatusAutomaton) method to register a dispatcher for any life-cycle events from a provided observable life-cycle instance.
        Parameters:
        aEvent - the event
      • initializeServices

        protected void initializeServices()
        Initialize services.
      • startServices

        protected void startServices()
        Start services.
      • pauseServices

        protected void pauseServices()
        Pause services.
      • resumeServices

        protected void resumeServices()
        Resume services.
      • stopServices

        protected void stopServices()
        Stop services.
      • destroyServices

        protected void destroyServices()
        Destroy services.