Package gw.config

Class ServiceKernel

    • Constructor Detail

      • ServiceKernel

        protected ServiceKernel()
    • Method Detail

      • resetKernel

        protected void resetKernel()
      • defineServices

        protected abstract void defineServices()
        Contains all the definitions of the services provided by this kernel
      • redefineServices

        protected abstract void redefineServices()
        Contains the redefinition logic for this kernel
      • getService

        public <T extends IService> T getService​(Class<? extends T> service)
        Parameters:
        service -
        Returns:
      • redefineService

        public <T extends IService,​Q extends T> void redefineService​(Class<? extends T> service,
                                                                           Q newProvider)
        Overrides the default implemenation of the service with a different provider. Note that the current provider cannot have been accessed (all services must be consistent during runtime.)
        Parameters:
        service - - the service to provide
        newProvider - - the new provider of this service
      • redefineService_Privileged

        public <T extends IService,​Q extends T> void redefineService_Privileged​(Class<? extends T> service,
                                                                                      Q newProvider)
      • defineService

        protected <T extends IService,​Q extends T> void defineService​(Class<? extends T> service,
                                                                            Q defaultImplementation)
        Defines a service provided by this ServiceKernel
        Parameters:
        service - - the service to provide
        defaultImplementation - - the default implementation of this service
      • redefineServicesWithClass

        protected void redefineServicesWithClass​(String initClassName)
        Parameters:
        initClassName - a class name of a class that implements {@link ServiceKernelInit) and that will be created and given a chance to redefine the service implementations in this kernel.