Package org.eclipse.sisu.bean
Class LifecycleManager
- java.lang.Object
-
- org.eclipse.sisu.bean.BeanScheduler
-
- org.eclipse.sisu.bean.LifecycleManager
-
- All Implemented Interfaces:
BeanManager
public final class LifecycleManager extends BeanScheduler implements BeanManager
BeanManager
that manages JSR250 beans and schedules lifecycle events.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.sisu.bean.BeanScheduler
BeanScheduler.CycleActivator
-
-
Field Summary
Fields Modifier and Type Field Description private LifecycleBuilder
builder
private java.util.Map<java.lang.Class<?>,BeanLifecycle>
lifecycles
private java.util.Deque<java.lang.Object>
stoppableBeans
-
Fields inherited from class org.eclipse.sisu.bean.BeanScheduler
CANDIDATE_CYCLE, CYCLE_ACTIVATOR, CYCLE_CONFIRMED, MODULE, pendingHolder
-
-
Constructor Summary
Constructors Constructor Description LifecycleManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
activate(java.lang.Object bean)
Customized activation of the given bean.private boolean
buildLifecycle(java.lang.Class<?> clazz)
Attempts to build a JSR250 lifecycle for the given bean type.private BeanLifecycle
lifecycleFor(java.lang.Object bean)
Looks up the JSR250 lifecycle previously built for this bean.boolean
manage(java.lang.Class<?> clazz)
Decides whether instances of the given bean type should be reported to this manager.boolean
manage(java.lang.Object bean)
Asks this manager to manage the given bean instance.PropertyBinding
manage(BeanProperty<?> property)
Asks this manager to manage the given bean property.private java.lang.Object
popStoppable()
private void
pushStoppable(java.lang.Object bean)
private boolean
removeStoppable(java.lang.Object bean)
boolean
unmanage()
Asks this manager to unmanage all the bean instances it knows about.boolean
unmanage(java.lang.Object bean)
Asks this manager to unmanage the given bean instance.-
Methods inherited from class org.eclipse.sisu.bean.BeanScheduler
detectCycle, schedule
-
-
-
-
Field Detail
-
builder
private final LifecycleBuilder builder
-
lifecycles
private final java.util.Map<java.lang.Class<?>,BeanLifecycle> lifecycles
-
stoppableBeans
private final java.util.Deque<java.lang.Object> stoppableBeans
-
-
Method Detail
-
manage
public boolean manage(java.lang.Class<?> clazz)
Description copied from interface:BeanManager
Decides whether instances of the given bean type should be reported to this manager.- Specified by:
manage
in interfaceBeanManager
- Parameters:
clazz
- The bean type- Returns:
true
if instances of the bean should be reported; otherwisefalse
-
manage
public PropertyBinding manage(BeanProperty<?> property)
Description copied from interface:BeanManager
Asks this manager to manage the given bean property.- Specified by:
manage
in interfaceBeanManager
- Parameters:
property
- The bean property- Returns:
- Non-null binding if the bean property was managed; otherwise
null
-
manage
public boolean manage(java.lang.Object bean)
Description copied from interface:BeanManager
Asks this manager to manage the given bean instance.- Specified by:
manage
in interfaceBeanManager
- Parameters:
bean
- The bean instance- Returns:
true
if the bean instance was managed; otherwisefalse
-
unmanage
public boolean unmanage(java.lang.Object bean)
Description copied from interface:BeanManager
Asks this manager to unmanage the given bean instance.- Specified by:
unmanage
in interfaceBeanManager
- Parameters:
bean
- The bean instance- Returns:
true
if the bean instance was unmanaged; otherwisefalse
-
unmanage
public boolean unmanage()
Description copied from interface:BeanManager
Asks this manager to unmanage all the bean instances it knows about.- Specified by:
unmanage
in interfaceBeanManager
- Returns:
true
if any bean instances were unmanaged; otherwisefalse
-
activate
protected void activate(java.lang.Object bean)
Description copied from class:BeanScheduler
Customized activation of the given bean.- Specified by:
activate
in classBeanScheduler
- Parameters:
bean
- The bean to activate
-
buildLifecycle
private boolean buildLifecycle(java.lang.Class<?> clazz)
Attempts to build a JSR250 lifecycle for the given bean type.- Parameters:
clazz
- The bean type- Returns:
true
if the bean defines a lifecycle; otherwisefalse
-
lifecycleFor
private BeanLifecycle lifecycleFor(java.lang.Object bean)
Looks up the JSR250 lifecycle previously built for this bean.- Parameters:
bean
- The bean instance- Returns:
- Lifecycle for the bean
-
pushStoppable
private void pushStoppable(java.lang.Object bean)
-
removeStoppable
private boolean removeStoppable(java.lang.Object bean)
-
popStoppable
private java.lang.Object popStoppable()
-
-