Package gw.config
Class ServiceKernel
java.lang.Object
gw.config.ServiceKernel
- Direct Known Subclasses:
CommonServices
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected <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
Contains all the definitions of the services provided by this kernelprivate <T extends IService>
void<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
Contains the redefinition logic for this kernelprotected void
redefineServicesWithClass
(String initClassName) protected void
-
Field Details
-
_services
-
_initingServices
-
_definingServices
private boolean _definingServices
-
-
Constructor Details
-
ServiceKernel
protected ServiceKernel()
-
-
Method Details
-
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
- 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
-
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
- 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.
-
detectCircularInitializationDependencies
-