public void invoked(
     PicoContainer container,
     ComponentAdapter<?> componentAdapter,
     Method method,
     Object instance,
     long duration) {
   delegate.invoked(container, componentAdapter, method, instance, duration);
 }
 public void invoked(
     PicoContainer container,
     ComponentAdapter componentAdapter,
     Method method,
     Object instance,
     long duration) {
   out.println(format(ComponentMonitorHelper.INVOKED, methodToString(method), instance, duration));
   delegate.invoked(container, componentAdapter, method, instance, duration);
 }
 public void invoked(
     PicoContainer container,
     ComponentAdapter<?> componentAdapter,
     Member member,
     Object instance,
     long duration,
     Object[] args,
     Object retVal) {
   out.println(format(ComponentMonitorHelper.INVOKED, methodToString(member), instance, duration));
   delegate.invoked(container, componentAdapter, member, instance, duration, args, retVal);
 }
 private Object decorateComponentInstance(
     Parameter[] matchingParameters,
     ComponentMonitor monitor,
     Object componentInstance,
     PicoContainer container,
     PicoContainer guardedContainer,
     Type into) {
   AccessibleObject member = null;
   Object injected[] = new Object[injectionMembers.size()];
   Object lastReturn = null;
   try {
     for (int i = 0; i < injectionMembers.size(); i++) {
       member = injectionMembers.get(i);
       if (matchingParameters[i] != null) {
         Object toInject =
             matchingParameters[i]
                 .resolve(
                     guardedContainer,
                     this,
                     null,
                     injectionTypes[i],
                     makeParameterNameImpl(injectionMembers.get(i)),
                     useNames(),
                     bindings[i])
                 .resolveInstance(into);
         Object rv =
             monitor.invoking(
                 container, this, (Member) member, componentInstance, new Object[] {toInject});
         if (rv == ComponentMonitor.KEEP) {
           long str = System.currentTimeMillis();
           lastReturn = injectIntoMember(member, componentInstance, toInject);
           monitor.invoked(
               container,
               this,
               (Member) member,
               componentInstance,
               System.currentTimeMillis() - str,
               lastReturn,
               new Object[] {toInject});
         } else {
           lastReturn = rv;
         }
         injected[i] = toInject;
       }
     }
     return memberInvocationReturn(lastReturn, member, componentInstance);
   } catch (InvocationTargetException e) {
     return caughtInvocationTargetException(monitor, (Member) member, componentInstance, e);
   } catch (IllegalAccessException e) {
     return caughtIllegalAccessException(monitor, (Member) member, componentInstance, e);
   }
 }
 protected Object invoke(final Object target) {
   final Method method = getMethod();
   try {
     componentMonitor.invoking(method, target);
     final long startTime = System.currentTimeMillis();
     super.invoke(target);
     componentMonitor.invoked(method, target, System.currentTimeMillis() - startTime);
   } catch (final PicoIntrospectionException e) {
     componentMonitor.invocationFailed(method, target, (Exception) e.getCause());
     throw e;
   }
   return Void.TYPE;
 }