Clover coverage report - PicoContainer - 1.0
Coverage timestamp: Sat Jun 5 2004 21:34:14 EDT
file stats: LOC: 42   Methods: 3
NCLOC: 21   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   
 
 17   
 /**
 18   
  * This ComponentAdapter caches the instance.
 19   
  * @version $Revision: 1.10 $
 20   
  */
 21   
 public class CachingComponentAdapter extends DecoratingComponentAdapter {
 22   
 
 23   
     private ObjectReference instanceReference;
 24   
 
 25  224
     public CachingComponentAdapter(ComponentAdapter delegate) {
 26  224
         this(delegate, new SimpleReference());
 27   
     }
 28   
 
 29  224
     public CachingComponentAdapter(ComponentAdapter delegate, ObjectReference instanceReference) {
 30  224
         super(delegate);
 31  224
         this.instanceReference = instanceReference;
 32   
     }
 33   
 
 34  296
     public Object getComponentInstance()
 35   
             throws PicoInitializationException, PicoIntrospectionException, AssignabilityRegistrationException, NotConcreteRegistrationException {
 36  296
         if (instanceReference.get() == null) {
 37  176
             instanceReference.set(super.getComponentInstance());
 38   
         }
 39  270
         return instanceReference.get();
 40   
     }
 41   
 }
 42