public class Kernel extends Object
Modifier and Type | Class and Description |
---|---|
class |
Kernel.DelayedDependencyInjectionQueue
Class implements a queue for delayed dependency injection.
|
static class |
Kernel.DelegatedBeanConfig
Class used for delegating beans from one kernel to the other kernel.
|
Constructor and Description |
---|
Kernel()
Creates instance of Kernel.
|
Kernel(String name)
Creates instance of kernel.
|
Modifier and Type | Method and Description |
---|---|
Kernel.DelayedDependencyInjectionQueue |
beginDependencyDelayedInjection()
Calling this method instructs Kernel to delay dependency injection until
finishDependecyDelayedInjection() method is called. |
void |
finishDependecyDelayedInjection(Kernel.DelayedDependencyInjectionQueue queue)
Calling this method instructs Kernel to end delaying dependency injection and inject all queued items.
|
void |
gc() |
DependencyManager |
getDependencyManager()
Returns
DependencyManager used in Kernel. |
<T> T |
getInstance(Class<T> beanClass)
Returns instance of bean.
|
protected <T> T |
getInstance(Class<T> beanClass,
boolean allowNonExportable) |
<T> T |
getInstance(String beanName)
Returns instance of bean.
|
<T> T |
getInstanceIfExistsOr(String beanName,
Function<BeanConfig,T> function)
Returns instance of bean if instance exists already or calls passed function.
|
String |
getName()
Returns name of Kernel.
|
Collection<String> |
getNamesOf(Class<?> beanType)
Returns name of beans matching to given type.
|
Kernel |
getParent()
Returns parent Kernel.
|
void |
initAll()
Forces initiate all registered beans.
|
protected void |
initBean(BeanConfig tmpBC,
Set<BeanConfig> createdBeansConfig,
int deep) |
protected void |
injectIfRequired(BeanConfig beanConfig) |
boolean |
isBeanClassRegistered(String beanName)
Checks if bean with given name is registered in Kernel.
|
boolean |
isBeanClassRegistered(String beanName,
boolean checkInParent)
Checks if bean with given name is registered in Kernel.
|
void |
ln(String exportingBeanName,
Kernel destinationKernel,
String destinationName)
Makes symlink to bean in another Kernel.
|
protected BeanConfig |
registerBean(BeanConfig beanConfig,
BeanConfig factoryBeanConfig,
Object beanInstance) |
BeanConfigBuilder |
registerBean(Class<?> beanClass)
Registers bean as class in Kernel.
|
BeanConfigBuilder |
registerBean(String beanName)
Registers bean with given name.
|
void |
registerLinks(String beanName)
Register links for bean of the passed name.
|
void |
setBeanActive(String beanName,
boolean value)
Change state of a bean (activate/deactivate).
|
void |
setForceAllowNull(boolean forceAllowNull)
Force injection of nulls in all dependency injection fields of all beans if required bean for injections are not
available.
|
void |
setName(String name)
Set name of the Kernel.
|
void |
shutdown()
Shutdown kernel.
|
void |
shutdown(Comparator<BeanConfig> shutdownOrder)
Shutdown kernel with passed comparator to define order in which bean will be stopped.
|
String |
toPrintable() |
String |
toString() |
void |
unregister(String beanName)
Removes bean from Kernel.
|
protected static final Logger log
public Kernel()
public Kernel(String name)
name
- kernel name.protected void initBean(BeanConfig tmpBC, Set<BeanConfig> createdBeansConfig, int deep) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException
public void gc()
public DependencyManager getDependencyManager()
DependencyManager
used in Kernel.depenency manager
.public <T> T getInstance(Class<T> beanClass) throws KernelException
T
- type of bean to be returned.beanClass
- type of requested bean. Note that if more than one instance of bean will match, then Kernel
throws exception.KernelException
- when more than one instance of matching beans will be found or none of matching beans is
registered.public <T> T getInstance(String beanName)
T
- type of bean to be returned.beanName
- name of bean to be returned.KernelException
- when bean with given name doesn't exists.public <T> T getInstanceIfExistsOr(String beanName, Function<BeanConfig,T> function)
T
- type of bean to be returned.beanName
- name of bean to be returned.function
- function to call if instance does not exist.KernelException
- when bean with given name doesn't exists.public String getName()
public void setName(String name)
name
- to setpublic void registerLinks(String beanName)
public Collection<String> getNamesOf(Class<?> beanType)
beanType
- type of searched beans.public Kernel getParent()
null
if there is no parent Kernel.public void initAll()
public boolean isBeanClassRegistered(String beanName)
beanName
- name of bean to check.true
if bean is registered (it may be not initialized!).public boolean isBeanClassRegistered(String beanName, boolean checkInParent)
beanName
- name of bean to check.checkInParent
- should check in parent kernel if not found in the current Kernel.true
if bean is registered (it may be not initialized!).public void ln(String exportingBeanName, Kernel destinationKernel, String destinationName)
exportingBeanName
- name bean to be linked.destinationKernel
- destination Kernel.destinationName
- name of bean in destination Kernel.public BeanConfigBuilder registerBean(Class<?> beanClass)
Bean
annotation. For example:
// If Bean1.class is annotated by @Bean annotation.
registerBean(Bean1.class).exec();
beanClass
- class of bean to register.config builder
what allows to finish bean registering.public BeanConfigBuilder registerBean(String beanName)
config builder
. For example:
// To register already created variable bean4 as bean "bean4".
krnl.registerBean("bean4").asInstance(bean4).exec();
// If Bean5 have to been created by Bean5Factory.
krnl.registerBean("bean5").asClass(Bean5.class).withFactory(Bean5Factory.class).exec();
beanName
- name of bean.config builder
what allows to finish bean registering.public Kernel.DelayedDependencyInjectionQueue beginDependencyDelayedInjection()
finishDependecyDelayedInjection()
method is called.public void finishDependecyDelayedInjection(Kernel.DelayedDependencyInjectionQueue queue) throws IllegalAccessException, InstantiationException, InvocationTargetException
public void setBeanActive(String beanName, boolean value)
beanName
- name of a beanvalue
- new state of a beanpublic void setForceAllowNull(boolean forceAllowNull)
public void shutdown()
public void shutdown(Comparator<BeanConfig> shutdownOrder)
shutdownOrder
- comparator defining order of beans for shutdownpublic void unregister(String beanName)
beanName
- name of bean to be removed.public String toPrintable()
protected <T> T getInstance(Class<T> beanClass, boolean allowNonExportable)
protected void injectIfRequired(BeanConfig beanConfig)
protected BeanConfig registerBean(BeanConfig beanConfig, BeanConfig factoryBeanConfig, Object beanInstance)
Copyright © 2004–2020 "Tigase, Inc.". All rights reserved.