1 10 11 package org.picocontainer.monitors; 12 13 import java.io.PrintWriter ; 14 import java.io.Writer ; 15 import java.lang.reflect.Constructor ; 16 import java.lang.reflect.Method ; 17 18 import org.picocontainer.ComponentMonitor; 19 20 28 public class WriterComponentMonitor extends AbstractComponentMonitor { 29 30 private PrintWriter out; 31 private final ComponentMonitor delegate; 32 33 public WriterComponentMonitor(Writer out) { 34 this.out = new PrintWriter (out); 35 delegate = new DefaultComponentMonitor(); 36 } 37 38 public WriterComponentMonitor(Writer out, ComponentMonitor delegate) { 39 this.out = new PrintWriter (out); 40 this.delegate = delegate; 41 } 42 43 public void instantiating(Constructor constructor) { 44 out.println(format(INSTANTIATING, new Object []{toString(constructor)})); 45 delegate.instantiating(constructor); 46 } 47 48 public void instantiated(Constructor constructor, long duration) { 49 out.println(format(INSTANTIATED, new Object []{toString(constructor), new Long (duration)})); 50 delegate.instantiated(constructor, duration); 51 } 52 53 public void instantiated(Constructor constructor, Object instantiated, Object [] injected, long duration) { 54 out.println(format(INSTANTIATED2, new Object []{toString(constructor), new Long (duration), instantiated.getClass().getName(), toString(injected)})); 55 delegate.instantiated(constructor, instantiated, injected, duration); 56 } 57 58 public void instantiationFailed(Constructor constructor, Exception cause) { 59 out.println(format(INSTANTIATION_FAILED, new Object []{toString(constructor), cause.getMessage()})); 60 delegate.instantiationFailed(constructor, cause); 61 } 62 63 public void invoking(Method method, Object instance) { 64 out.println(format(INVOKING, new Object []{toString(method), instance})); 65 delegate.invoking(method, instance); 66 } 67 68 public void invoked(Method method, Object instance, long duration) { 69 out.println(format(INVOKED, new Object []{toString(method), instance, new Long (duration)})); 70 delegate.invoked(method, instance, duration); 71 } 72 73 public void invocationFailed(Method method, Object instance, Exception cause) { 74 out.println(format(INVOCATION_FAILED, new Object []{toString(method), instance, cause.getMessage()})); 75 delegate.invocationFailed(method, instance, cause); 76 } 77 78 public void lifecycleInvocationFailed(Method method, Object instance, RuntimeException cause) { 79 out.println(format(LIFECYCLE_INVOCATION_FAILED, new Object []{toString(method), instance, cause.getMessage()})); 80 delegate.lifecycleInvocationFailed(method, instance, cause); 81 } 82 83 } 84 | Popular Tags |