Package org.picocontainer.monitors
Class AbstractComponentMonitor
- java.lang.Object
-
- org.picocontainer.monitors.AbstractComponentMonitor
-
- All Implemented Interfaces:
java.io.Serializable,ComponentMonitor,ComponentMonitorStrategy
- Direct Known Subclasses:
ComposingMonitor
public class AbstractComponentMonitor extends java.lang.Object implements ComponentMonitor, ComponentMonitorStrategy, java.io.Serializable
A
monitorwhich delegates to another monitor. It provides adefault ComponentMonitor, but does not allow to usenullfor the delegate.It also supports a
monitor strategythat allows to change the delegate.- Author:
- Mauro Talevi
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface org.picocontainer.ComponentMonitor
KEEP
-
-
Constructor Summary
Constructors Constructor Description AbstractComponentMonitor()Creates a AbstractComponentMonitor with an instance ofNullComponentMonitor.AbstractComponentMonitor(ComponentMonitor delegate)Creates a AbstractComponentMonitor with a given delegate
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidchangeMonitor(ComponentMonitor monitor)If the delegate supports amonitor strategy, this is used to changed the monitor while keeping the same delegate.ComponentMonitorcurrentMonitor()Returns the monitor currently used<T> voidinstantiated(PicoContainer container, ComponentAdapter<T> componentAdapter, java.lang.reflect.Constructor<T> constructor, java.lang.Object instantiated, java.lang.Object[] injected, long duration)Event thrown after the component has been instantiated using the given constructor.<T> java.lang.reflect.Constructor<T>instantiating(PicoContainer container, ComponentAdapter<T> componentAdapter, java.lang.reflect.Constructor<T> constructor)Event thrown as the component is being instantiated using the given constructor<T> voidinstantiationFailed(PicoContainer container, ComponentAdapter<T> componentAdapter, java.lang.reflect.Constructor<T> constructor, java.lang.Exception e)Event thrown if the component instantiation failed using the given constructorvoidinvocationFailed(java.lang.reflect.Member member, java.lang.Object instance, java.lang.Exception e)Event thrown if the component method invocation failed on the given instancevoidinvoked(PicoContainer container, ComponentAdapter<?> componentAdapter, java.lang.reflect.Member member, java.lang.Object instance, long duration, java.lang.Object[] args, java.lang.Object retVal)Event thrown after the component method has been invoked on the given instancejava.lang.Objectinvoking(PicoContainer container, ComponentAdapter<?> componentAdapter, java.lang.reflect.Member member, java.lang.Object instance, java.lang.Object[] args)Event thrown as the component method is being invoked on the given instancevoidlifecycleInvocationFailed(MutablePicoContainer container, ComponentAdapter<?> componentAdapter, java.lang.reflect.Method method, java.lang.Object instance, java.lang.RuntimeException cause)Event thrown if a lifecycle method invocation - start, stop or dispose - failed on the given instanceBehaviornewBehavior(Behavior behavior)A mechanism to monitor or override the Behaviors being made for components.InjectornewInjector(Injector injector)A mechanism to monitor or override the Injectors being made for components.java.lang.ObjectnoComponentFound(MutablePicoContainer container, java.lang.Object componentKey)No Component has been found for the key in question.
-
-
-
Constructor Detail
-
AbstractComponentMonitor
public AbstractComponentMonitor(ComponentMonitor delegate)
Creates a AbstractComponentMonitor with a given delegate- Parameters:
delegate- the ComponentMonitor to which this monitor delegates
-
AbstractComponentMonitor
public AbstractComponentMonitor()
Creates a AbstractComponentMonitor with an instance ofNullComponentMonitor.
-
-
Method Detail
-
instantiating
public <T> java.lang.reflect.Constructor<T> instantiating(PicoContainer container, ComponentAdapter<T> componentAdapter, java.lang.reflect.Constructor<T> constructor)
Description copied from interface:ComponentMonitorEvent thrown as the component is being instantiated using the given constructor- Specified by:
instantiatingin interfaceComponentMonitorconstructor- the Constructor used to instantiate the addComponent @return the constructor to use in instantiation (nearly always the same one as passed in)
-
instantiated
public <T> void instantiated(PicoContainer container, ComponentAdapter<T> componentAdapter, java.lang.reflect.Constructor<T> constructor, java.lang.Object instantiated, java.lang.Object[] injected, long duration)
Description copied from interface:ComponentMonitorEvent thrown after the component has been instantiated using the given constructor. This should be called for both Constructor and Setter DI.- Specified by:
instantiatedin interfaceComponentMonitorconstructor- the Constructor used to instantiate the addComponentinstantiated- the component that was instantiated by PicoContainerinjected- the components during instantiation.duration- the duration in milliseconds of the instantiation
-
instantiationFailed
public <T> void instantiationFailed(PicoContainer container, ComponentAdapter<T> componentAdapter, java.lang.reflect.Constructor<T> constructor, java.lang.Exception e)
Description copied from interface:ComponentMonitorEvent thrown if the component instantiation failed using the given constructor- Specified by:
instantiationFailedin interfaceComponentMonitorconstructor- the Constructor used to instantiate the addComponente- the Exception detailing the cause of the failure
-
invoking
public java.lang.Object invoking(PicoContainer container, ComponentAdapter<?> componentAdapter, java.lang.reflect.Member member, java.lang.Object instance, java.lang.Object[] args)
Description copied from interface:ComponentMonitorEvent thrown as the component method is being invoked on the given instance- Specified by:
invokingin interfaceComponentMonitorinstance- the component instance
-
invoked
public void invoked(PicoContainer container, ComponentAdapter<?> componentAdapter, java.lang.reflect.Member member, java.lang.Object instance, long duration, java.lang.Object[] args, java.lang.Object retVal)
Description copied from interface:ComponentMonitorEvent thrown after the component method has been invoked on the given instance- Specified by:
invokedin interfaceComponentMonitorinstance- the component instance
-
invocationFailed
public void invocationFailed(java.lang.reflect.Member member, java.lang.Object instance, java.lang.Exception e)Description copied from interface:ComponentMonitorEvent thrown if the component method invocation failed on the given instance- Specified by:
invocationFailedin interfaceComponentMonitorinstance- the component instancee- the Exception detailing the cause of the failure
-
lifecycleInvocationFailed
public void lifecycleInvocationFailed(MutablePicoContainer container, ComponentAdapter<?> componentAdapter, java.lang.reflect.Method method, java.lang.Object instance, java.lang.RuntimeException cause)
Description copied from interface:ComponentMonitorEvent thrown if a lifecycle method invocation - start, stop or dispose - failed on the given instance- Specified by:
lifecycleInvocationFailedin interfaceComponentMonitormethod- the lifecycle Method invoked on the component instanceinstance- the component instancecause- the RuntimeException detailing the cause of the failure
-
noComponentFound
public java.lang.Object noComponentFound(MutablePicoContainer container, java.lang.Object componentKey)
Description copied from interface:ComponentMonitorNo Component has been found for the key in question. Implementers of this have a last chance opportunity to specify something for the need. This is only relevant to component dependencies, and not to container.getComponent() in your user code. - Specified by:
noComponentFoundin interfaceComponentMonitor
-
newInjector
public Injector newInjector(Injector injector)
Description copied from interface:ComponentMonitorA mechanism to monitor or override the Injectors being made for components.- Specified by:
newInjectorin interfaceComponentMonitor- Returns:
- an Injector. For most implementations, the same one as was passed in.
-
newBehavior
public Behavior newBehavior(Behavior behavior)
Description copied from interface:ComponentMonitorA mechanism to monitor or override the Behaviors being made for components.- Specified by:
newBehaviorin interfaceComponentMonitor- Returns:
- an Behavior. For most implementations, the same one as was passed in.
-
changeMonitor
public void changeMonitor(ComponentMonitor monitor)
If the delegate supports amonitor strategy, this is used to changed the monitor while keeping the same delegate. Else the delegate is replaced by the new monitor. Changes the component monitor used- Specified by:
changeMonitorin interfaceComponentMonitorStrategy- Parameters:
monitor- the new ComponentMonitor to use
-
currentMonitor
public ComponentMonitor currentMonitor()
Description copied from interface:ComponentMonitorStrategyReturns the monitor currently used- Specified by:
currentMonitorin interfaceComponentMonitorStrategy- Returns:
- The ComponentMonitor currently used
-
-