Class AbstractComponentMonitor

java.lang.Object
org.picocontainer.monitors.AbstractComponentMonitor
All Implemented Interfaces:
Serializable, ComponentMonitor, ComponentMonitorStrategy
Direct Known Subclasses:
ComposingMonitor

public class AbstractComponentMonitor extends Object implements ComponentMonitor, ComponentMonitorStrategy, Serializable

A monitor which delegates to another monitor. It provides a default ComponentMonitor, but does not allow to use null for the delegate.

It also supports a monitor strategy that allows to change the delegate.

Author:
Mauro Talevi
See Also:
  • Constructor Details

    • 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 of NullComponentMonitor.
  • Method Details

    • instantiating

      public <T> Constructor<T> instantiating(PicoContainer container, ComponentAdapter<T> componentAdapter, Constructor<T> constructor)
      Description copied from interface: ComponentMonitor
      Event thrown as the component is being instantiated using the given constructor
      Specified by:
      instantiating in interface ComponentMonitor
      constructor - 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, Constructor<T> constructor, Object instantiated, Object[] injected, long duration)
      Description copied from interface: ComponentMonitor
      Event thrown after the component has been instantiated using the given constructor. This should be called for both Constructor and Setter DI.
      Specified by:
      instantiated in interface ComponentMonitor
      constructor - the Constructor used to instantiate the addComponent
      instantiated - the component that was instantiated by PicoContainer
      injected - the components during instantiation.
      duration - the duration in milliseconds of the instantiation
    • instantiationFailed

      public <T> void instantiationFailed(PicoContainer container, ComponentAdapter<T> componentAdapter, Constructor<T> constructor, Exception e)
      Description copied from interface: ComponentMonitor
      Event thrown if the component instantiation failed using the given constructor
      Specified by:
      instantiationFailed in interface ComponentMonitor
      constructor - the Constructor used to instantiate the addComponent
      e - the Exception detailing the cause of the failure
    • invoking

      public Object invoking(PicoContainer container, ComponentAdapter<?> componentAdapter, Member member, Object instance, Object[] args)
      Description copied from interface: ComponentMonitor
      Event thrown as the component method is being invoked on the given instance
      Specified by:
      invoking in interface ComponentMonitor
      instance - the component instance
    • invoked

      public void invoked(PicoContainer container, ComponentAdapter<?> componentAdapter, Member member, Object instance, long duration, Object[] args, Object retVal)
      Description copied from interface: ComponentMonitor
      Event thrown after the component method has been invoked on the given instance
      Specified by:
      invoked in interface ComponentMonitor
      instance - the component instance
    • invocationFailed

      public void invocationFailed(Member member, Object instance, Exception e)
      Description copied from interface: ComponentMonitor
      Event thrown if the component method invocation failed on the given instance
      Specified by:
      invocationFailed in interface ComponentMonitor
      instance - the component instance
      e - the Exception detailing the cause of the failure
    • lifecycleInvocationFailed

      public void lifecycleInvocationFailed(MutablePicoContainer container, ComponentAdapter<?> componentAdapter, Method method, Object instance, RuntimeException cause)
      Description copied from interface: ComponentMonitor
      Event thrown if a lifecycle method invocation - start, stop or dispose - failed on the given instance
      Specified by:
      lifecycleInvocationFailed in interface ComponentMonitor
      method - the lifecycle Method invoked on the component instance
      instance - the component instance
      cause - the RuntimeException detailing the cause of the failure
    • noComponentFound

      public Object noComponentFound(MutablePicoContainer container, Object componentKey)
      Description copied from interface: ComponentMonitor
      No 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:
      noComponentFound in interface ComponentMonitor
    • newInjector

      public Injector newInjector(Injector injector)
      Description copied from interface: ComponentMonitor
      A mechanism to monitor or override the Injectors being made for components.
      Specified by:
      newInjector in interface ComponentMonitor
      Returns:
      an Injector. For most implementations, the same one as was passed in.
    • newBehavior

      public Behavior newBehavior(Behavior behavior)
      Description copied from interface: ComponentMonitor
      A mechanism to monitor or override the Behaviors being made for components.
      Specified by:
      newBehavior in interface ComponentMonitor
      Returns:
      an Behavior. For most implementations, the same one as was passed in.
    • changeMonitor

      public void changeMonitor(ComponentMonitor monitor)
      If the delegate supports a monitor 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:
      changeMonitor in interface ComponentMonitorStrategy
      Parameters:
      monitor - the new ComponentMonitor to use
    • currentMonitor

      public ComponentMonitor currentMonitor()
      Description copied from interface: ComponentMonitorStrategy
      Returns the monitor currently used
      Specified by:
      currentMonitor in interface ComponentMonitorStrategy
      Returns:
      The ComponentMonitor currently used