Clover coverage report - ATP library for Java - 3.6.4-stable-060214
Coverage timestamp: Вт фев 14 2006 13:45:22 MSK
file stats: LOC: 152   Methods: 10
NCLOC: 58   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
BeanWrapper.java 16,7% 18,8% 20% 18,8%
coverage coverage
 1    /*
 2    * Copyright (c) 2001-2004,
 3    * RedVerst Group, ISP RAS http://www.ispras.ru
 4    * All rights reserved.
 5    *
 6    * Redistribution and use in source and binary forms, with or without
 7    * modification, are permitted provided that the following conditions are met:
 8    *
 9    * 1. Redistributions of source code must retain the above copyright notice, this
 10    * list of conditions and the following disclaimer.
 11    *
 12    * 2. Redistributions in binary form must reproduce the above copyright notice,
 13    * this list of conditions and the following disclaimer in the documentation
 14    * and/or other materials provided with the distribution.
 15    *
 16    * 3. The names "ATP", "TreeDL", "RedVerst", "ISP RAS"
 17    * may not be used to endorse or promote products derived from this software
 18    * without specific prior written permission.
 19    *
 20    * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 21    * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 22    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 23    * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
 24    * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 25    * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 26    * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 27    * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 28    * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 29    * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 30    */
 31   
 32    package com.unitesk.atp.dynattrs;
 33   
 34    import java.util.Set;
 35   
 36    /**
 37    * The implementation of {@link Attributed} interface that accesses attributes
 38    * through <I>getter</I> and <I>setter</I> methods according to JavaBeans
 39    * naming conventions.
 40    *
 41    * @author <A href="mailto:demakov@ispras.ru">Alexey Demakov</A>
 42    * @version $Id: BeanWrapper.java,v 1.1 2004/10/09 06:19:04 all-x Exp $
 43    */
 44    public class BeanWrapper extends IndexedAttributedImpl
 45    {
 46    /**
 47    * Constructs wrapper of specified object.
 48    * @param obj Object to wrap.
 49    * @throws NullPointerException
 50    * If <code>obj</code> is <code>null</code>.
 51    */
 52  17 public BeanWrapper( Object obj )
 53    {
 54  17 if( obj == null )
 55    {
 56  0 throw new NullPointerException();
 57    }
 58   
 59  17 this.obj = obj;
 60    }
 61   
 62    /**
 63    * {@inheritDoc}
 64    */
 65  0 public boolean hasAttribute( String name )
 66    {
 67  0 return Accessor.hasBeanProperty( obj, name );
 68    }
 69   
 70    /**
 71    * Bean wrapper doesn't allow creation of attributes.
 72    */
 73  0 public boolean isAttrCreatable()
 74    {
 75  0 return false;
 76    }
 77   
 78    /**
 79    * Bean wrapper doesn't allow removal of attributes.
 80    */
 81  0 public boolean isRemovable( String name )
 82    {
 83  0 if( !hasAttribute( name ) )
 84    {
 85  0 throw new AttributeException( this, name );
 86    }
 87  0 return false;
 88    }
 89   
 90    /**
 91    * {@inheritDoc}
 92    */
 93  0 public boolean isWritable( String name )
 94    {
 95  0 if( !hasAttribute( name ) )
 96    {
 97  0 throw new AttributeException( this, name );
 98    }
 99  0 return Accessor.isBeanPropertyWritable( obj, name );
 100    }
 101   
 102    //------------------------------------------------------------------------------
 103   
 104    /**
 105    * Unsupported operation.
 106    */
 107  0 public void addAttribute( String name, Object value )
 108    {
 109  0 throw new UnsupportedOperationException();
 110    }
 111   
 112    /**
 113    * Unsupported operation.
 114    */
 115  0 public void removeAttribute( String name )
 116    {
 117  0 throw new UnsupportedOperationException();
 118    }
 119   
 120    //------------------------------------------------------------------------------
 121   
 122    /**
 123    * {@inheritDoc}
 124    */
 125  3 public Object getAttribute( String name )
 126    {
 127  3 return Accessor.getBeanProperty( obj, name );
 128    }
 129   
 130    /**
 131    * {@inheritDoc}
 132    */
 133  0 public void setAttribute( String name, Object value )
 134    {
 135  0 Accessor.setBeanProperty( obj, name, value );
 136    }
 137   
 138    //------------------------------------------------------------------------------
 139   
 140    /**
 141    * {@inheritDoc}
 142    */
 143  0 public Set/*String*/ getAttributeNames()
 144    {
 145  0 return Accessor.getBeanPropertyNames( obj );
 146    }
 147   
 148    //------------------------------------------------------------------------------
 149    // implementation
 150   
 151    private Object obj;
 152    }