Package gw.config
Class ServiceKernel
- java.lang.Object
-
- gw.config.ServiceKernel
-
- Direct Known Subclasses:
CommonServices
public abstract class ServiceKernel extends Object
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ServiceKernel()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected <T extends IService>
voiddefineService(Class<? extends T> serviceClass, Class<? extends T> implClass)
protected <T extends IService,Q extends T>
voiddefineService(Class<? extends T> service, Q defaultImplementation)
Defines a service provided by this ServiceKernelprotected abstract void
defineServices()
Contains all the definitions of the services provided by this kernel<T extends IService>
TgetService(Class<? extends T> service)
<T extends IService,Q extends T>
voidredefineService(Class<? extends T> service, Q newProvider)
Overrides the default implemenation of the service with a different provider.<T extends IService,Q extends T>
voidredefineService_Privileged(Class<? extends T> service, Q newProvider)
protected abstract void
redefineServices()
Contains the redefinition logic for this kernelprotected void
redefineServicesWithClass(String initClassName)
protected void
resetKernel()
-
-
-
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 providenewProvider
- - 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> void defineService(Class<? extends T> serviceClass, Class<? extends T> implClass) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException
-
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 providedefaultImplementation
- - 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.
-
-