Clover coverage report - Ledge Container - SNAPSHOT
Coverage timestamp: Fri Nov 17 2006 05:16:03 CET
file stats: LOC: 75   Methods: 2
NCLOC: 25   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
PicoPersistentFactory.java 0% 0% 0% 0%
coverage
 1    //
 2    // Copyright (c) 2003, Caltha - Gajda, Krzewski, Mach, Potempski Sp.J.
 3    // All rights reserved.
 4    //
 5    // Redistribution and use in source and binary forms, with or without modification,
 6    // are permitted provided that the following conditions are met:
 7    //
 8    // * Redistributions of source code must retain the above copyright notice,
 9    // this list of conditions and the following disclaimer.
 10    // * Redistributions in binary form must reproduce the above copyright notice,
 11    // this list of conditions and the following disclaimer in the documentation
 12    // and/or other materials provided with the distribution.
 13    // * Neither the name of the Caltha - Gajda, Krzewski, Mach, Potempski Sp.J.
 14    // nor the names of its contributors may be used to endorse or promote products
 15    // derived from this software without specific prior written permission.
 16    //
 17    // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 18    // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 19    // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 20    // IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 21    // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 22    // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
 23    // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 24    // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 25    // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 26    // POSSIBILITY OF SUCH DAMAGE.
 27    //
 28    package org.objectledge.database.persistence;
 29   
 30    import org.objectledge.pico.customization.CustomizingConstructorComponentAdapter;
 31    import org.picocontainer.ComponentAdapter;
 32    import org.picocontainer.PicoContainer;
 33   
 34    /**
 35    * An implementation of the {@link org.objectledge.database.persistence.PersistentFactory}
 36    * interface that uses a PicoContainer and
 37    * {@link org.objectledge.pico.customization.CustomizingConstructorComponentAdapter}.
 38    *
 39    * @author <a href="mailto:rafal@caltha.pl">Rafal Krzewski</a>
 40    * @version $Id: PicoPersistentFactory.java,v 1.3 2005/07/07 08:30:03 zwierzem Exp $
 41    */
 42    public class PicoPersistentFactory implements PersistentFactory
 43    {
 44    private PicoContainer container;
 45   
 46    private Class type;
 47   
 48    /**
 49    * Crates an instantiator instance.
 50    *
 51    * @param container the pico container to resolve dependencies from.
 52    * @param type an implmentation of {@link org.objectledge.database.persistence.Persistent} interface.
 53    * @throws IllegalArgumentException if the clazz does not implement required interface.
 54    */
 55  0 public PicoPersistentFactory(PicoContainer container, Class type)
 56    throws IllegalArgumentException
 57    {
 58  0 this.container = container;
 59  0 this.type = type;
 60  0 if(!Persistent.class.isAssignableFrom(type))
 61    {
 62  0 throw new IllegalArgumentException(type.getName()+
 63    " does not implmement Persistent interface");
 64    }
 65    }
 66   
 67    /**
 68    * {@inheritDoc}
 69    */
 70  0 public Persistent newInstance() throws Exception
 71    {
 72  0 ComponentAdapter adapter = new CustomizingConstructorComponentAdapter(type, type, null);
 73  0 return (Persistent)adapter.getComponentInstance(container);
 74    }
 75    }