Clover coverage report - picocontainer - 1.2-beta-1
Coverage timestamp: Sun May 29 2005 14:29:04 BST
file stats: LOC: 87   Methods: 6
NCLOC: 49   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
RootVisitingLifecycleManager.java - 0% 0% 0%
coverage
 1    package org.picocontainer.alternatives;
 2   
 3    import org.picocontainer.LifecycleManager;
 4    import org.picocontainer.PicoVisitor;
 5    import org.picocontainer.Startable;
 6    import org.picocontainer.Disposable;
 7    import org.picocontainer.PicoContainer;
 8    import org.picocontainer.defaults.ComponentMonitor;
 9    import org.picocontainer.defaults.LifecycleVisitor;
 10    import org.picocontainer.defaults.NullComponentMonitor;
 11   
 12    import java.lang.reflect.Method;
 13   
 14    /**
 15    * @author Paul Hammant
 16    * @version $Revision: 1870 $
 17    */
 18    public class RootVisitingLifecycleManager implements LifecycleManager {
 19   
 20    private static final Method START;
 21    private static final Method STOP;
 22    private static final Method DISPOSE;
 23    private PicoVisitor startVisitor;
 24    private PicoVisitor stopVisitor;
 25    private PicoVisitor disposeVisitor;
 26   
 27    static {
 28  0 try {
 29  0 START = Startable.class.getMethod("start", null);
 30  0 STOP = Startable.class.getMethod("stop", null);
 31  0 DISPOSE = Disposable.class.getMethod("dispose", null);
 32    } catch (NoSuchMethodException e) {
 33    ///CLOVER:OFF
 34    throw new InternalError(e.getMessage());
 35    ///CLOVER:ON
 36    }
 37    }
 38   
 39    /**
 40    * Creates a lifecycle manager which will invoke lifecycle methods on components implementing:
 41    * <ul>
 42    * <li>{@link org.picocontainer.Startable#start()}</li>
 43    * <li>{@link org.picocontainer.Startable#stop()}</li>
 44    * <li>{@link org.picocontainer.Disposable#dispose()}</li>
 45    * </ul>
 46    *
 47    * @param componentMonitor the monitor that will receive lifecycle events.
 48    */
 49  0 public RootVisitingLifecycleManager(ComponentMonitor componentMonitor) {
 50  0 this(new LifecycleVisitor(START, Startable.class, true, componentMonitor),
 51    new LifecycleVisitor(STOP, Startable.class, false, componentMonitor),
 52    new LifecycleVisitor(DISPOSE, Disposable.class, false, componentMonitor));
 53    }
 54   
 55    /**
 56    * Creates a lifecycle manager using pluggable lifecycle.
 57    *
 58    * @param startVisitor the visitor to use on start()
 59    * @param stopVisitor the visitor to use on stop()
 60    * @param disposeVisitor the visitor to use on dispose()
 61    */
 62  0 public RootVisitingLifecycleManager(PicoVisitor startVisitor, PicoVisitor stopVisitor, PicoVisitor disposeVisitor) {
 63  0 this.startVisitor = startVisitor;
 64  0 this.stopVisitor = stopVisitor;
 65  0 this.disposeVisitor = disposeVisitor;
 66    }
 67   
 68    /**
 69    * Creates a lifecycle manager with default visitors using a {@link org.picocontainer.defaults.NullComponentMonitor}.
 70    */
 71  0 public RootVisitingLifecycleManager() {
 72  0 this(new NullComponentMonitor());
 73    }
 74   
 75  0 public void start(PicoContainer node) {
 76  0 startVisitor.traverse(node);
 77    }
 78   
 79  0 public void stop(PicoContainer node) {
 80  0 stopVisitor.traverse(node);
 81    }
 82   
 83  0 public void dispose(PicoContainer node) {
 84  0 disposeVisitor.traverse(node);
 85    }
 86   
 87    }