Clover coverage report - PicoContainer - 1.1
Coverage timestamp: Thu Nov 4 2004 11:55:45 CST
file stats: LOC: 43   Methods: 3
NCLOC: 22   Classes: 1
30 day Evaluation Version distributed via the Maven Jar Repository. Clover is not free. You have 30 days to evaluate it. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover
 
 Source file Conditionals Statements Methods TOTAL
CachingComponentAdapter.java 100% 100% 100% 100%
coverage
 1   
 /*****************************************************************************
 2   
  * Copyright (c) PicoContainer Organization. All rights reserved.            *
 3   
  * ------------------------------------------------------------------------- *
 4   
  * The software in this package is published under the terms of the BSD      *
 5   
  * style license a copy of which has been included with this distribution in *
 6   
  * the LICENSE.txt file.                                                     *
 7   
  *                                                                           *
 8   
  * Idea by Rachel Davies, Original code by Aslak Hellesoy and Paul Hammant   *
 9   
  *****************************************************************************/
 10   
 
 11   
 package org.picocontainer.defaults;
 12   
 
 13   
 import org.picocontainer.ComponentAdapter;
 14   
 import org.picocontainer.PicoInitializationException;
 15   
 import org.picocontainer.PicoIntrospectionException;
 16   
 import org.picocontainer.PicoContainer;
 17   
 
 18   
 /**
 19   
  * This ComponentAdapter caches the instance.
 20   
  * @version $Revision: 1.11 $
 21   
  */
 22   
 public class CachingComponentAdapter extends DecoratingComponentAdapter {
 23   
 
 24   
     private ObjectReference instanceReference;
 25   
 
 26  1088
     public CachingComponentAdapter(ComponentAdapter delegate) {
 27  1088
         this(delegate, new SimpleReference());
 28   
     }
 29   
 
 30  1088
     public CachingComponentAdapter(ComponentAdapter delegate, ObjectReference instanceReference) {
 31  1088
         super(delegate);
 32  1088
         this.instanceReference = instanceReference;
 33   
     }
 34   
 
 35  1212
     public Object getComponentInstance(PicoContainer container)
 36   
             throws PicoInitializationException, PicoIntrospectionException, AssignabilityRegistrationException, NotConcreteRegistrationException {
 37  1212
         if (instanceReference.get() == null) {
 38  778
             instanceReference.set(super.getComponentInstance(container));
 39   
         }
 40  1086
         return instanceReference.get();
 41   
     }
 42   
 }
 43