Clover coverage report - picocontainer - 1.2-beta-1
Coverage timestamp: Sun May 29 2005 14:29:04 BST
file stats: LOC: 42   Methods: 3
NCLOC: 22   Classes: 1
 
 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: 1570 $
 21    */
 22    public class CachingComponentAdapter extends DecoratingComponentAdapter {
 23   
 24    private ObjectReference instanceReference;
 25   
 26  1134 public CachingComponentAdapter(ComponentAdapter delegate) {
 27  1134 this(delegate, new SimpleReference());
 28    }
 29   
 30  1134 public CachingComponentAdapter(ComponentAdapter delegate, ObjectReference instanceReference) {
 31  1134 super(delegate);
 32  1134 this.instanceReference = instanceReference;
 33    }
 34   
 35  1260 public Object getComponentInstance(PicoContainer container)
 36    throws PicoInitializationException, PicoIntrospectionException, AssignabilityRegistrationException, NotConcreteRegistrationException {
 37  1260 if (instanceReference.get() == null) {
 38  826 instanceReference.set(super.getComponentInstance(container));
 39    }
 40  1136 return instanceReference.get();
 41    }
 42    }