Class ServiceBusImpl<S extends Service<?>,SCTX extends ServiceContext<S>>

  • Type Parameters:
    S - the generic type
    SCTX - the generic type
    All Implemented Interfaces:
    org.refcodes.mixin.Loggable, ServiceBus<S>


    public class ServiceBusImpl<S extends Service<?>,SCTX extends ServiceContext<S>>
    extends java.lang.Object
    implements ServiceBus<S>, org.refcodes.mixin.Loggable
    The Class ServiceBusImpl.
    • 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
      ServiceBusImpl​(ServiceLookup<S,SCTX> aServiceLookup, org.refcodes.component.ext.observer.ObservableLifeCycleStatusAutomaton aObservableLifecycleAutomaton)
      Constructs the subscriber part of the event bus.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void destroyServices​()
      Destroy services.
      boolean hasService​(ServiceMatcher<S> aServiceMatcher)
      Determines whether the given ServiceMatcher will result in a single Service to be looked up.
      protected void initializeServices​()
      Initialize services.
      S lookupService​(ServiceMatcher<S> aServiceMatcher)
      Looks for a service matching the given service descriptor and returns it if found.
      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.
      protected void pauseServices​()
      Pause services.
      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.
      protected void resumeServices​()
      Resume services.
      protected void startServices​()
      Start services.
      protected void stopServices​()
      Stop services.
      • Methods inherited from interface org.refcodes.mixin.Loggable

        alert, alert, critical, critical, debug, error, info, notice, panic, trace, warn, warn
      • Methods inherited from class java.lang.Object

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

      • ServiceBusImpl

        public ServiceBusImpl​(ServiceLookup<S,SCTX> 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.