Clover coverage report - Ledge Components - SNAPSHOT
Coverage timestamp: Fri Nov 17 2006 05:13:20 CET
file stats: LOC: 97   Methods: 5
NCLOC: 32   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
AbstractDatatypeSet.java 0% 0% 0% 0%
coverage
 1    //
 2    // Copyright (c) 2003, 2004, 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.datatype;
 29   
 30    /**
 31    * Common base class for DatatypeSet implementations.
 32    *
 33    * @author <a href="mailto:dgajda@caltha.pl">Damian Gajda</a>
 34    * @version $Id: AbstractDatatypeSet.java,v 1.2 2004/12/27 04:43:22 rafal Exp $
 35    */
 36    public abstract class AbstractDatatypeSet implements DatatypeSet
 37    {
 38    /** Name of this datatype set. */
 39    protected String name;
 40   
 41    /** Parent of this datatype set. */
 42    protected DatatypeSet parent;
 43   
 44    /**
 45    * Creates a datatype set with a given name.
 46    *
 47    * @param name name of the set.
 48    */
 49  0 public AbstractDatatypeSet(String name)
 50    {
 51  0 this.name = name;
 52    }
 53   
 54    // DatatypeSet API ----------------------------------------------------------------------------
 55   
 56    /**
 57    * {@inheritDoc}
 58    */
 59  0 public String getName()
 60    {
 61  0 return name;
 62    }
 63   
 64    /**
 65    * {@inheritDoc}
 66    */
 67  0 public Datatype getDatatype(String name)
 68    {
 69  0 Datatype datatype = this.getDatatypeInternal(name);
 70  0 if(datatype == null && parent != null)
 71    {
 72  0 return parent.getDatatype(name);
 73    }
 74  0 return datatype;
 75    }
 76   
 77    // NonPublic API -----------------------------------------------------------------------------
 78   
 79  0 DatatypeSet getParent()
 80    {
 81  0 return parent;
 82    }
 83   
 84  0 void setParent(DatatypeSet parent)
 85    {
 86  0 this.parent = parent;
 87    }
 88   
 89    // Override API ------------------------------------------------------------------------------
 90   
 91    /**
 92    * Internal method for getting datatypes left for implmentation by subclasses.
 93    * @param name name of the datatype
 94    * @return found datatype or <code>null</code>.
 95    */
 96    protected abstract Datatype getDatatypeInternal(String name);
 97    }