2009/04/15 - Apache HiveMind has been retired.

For more information, please explore the Attic.

Clover coverage report - Code Coverage for hivemind release 1.2.1
Coverage timestamp: Fri Feb 10 2006 16:33:43 PST
file stats: LOC: 105   Methods: 7
NCLOC: 54   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
AbstractFab.java 100% 100% 100% 100%
coverage
 1    // Copyright 2005 The Apache Software Foundation
 2    //
 3    // Licensed under the Apache License, Version 2.0 (the "License");
 4    // you may not use this file except in compliance with the License.
 5    // You may obtain a copy of the License at
 6    //
 7    // http://www.apache.org/licenses/LICENSE-2.0
 8    //
 9    // Unless required by applicable law or agreed to in writing, software
 10    // distributed under the License is distributed on an "AS IS" BASIS,
 11    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 12    // See the License for the specific language governing permissions and
 13    // limitations under the License.
 14   
 15    package org.apache.hivemind.service.impl;
 16   
 17    import java.util.HashMap;
 18    import java.util.Map;
 19   
 20    import javassist.CtClass;
 21   
 22    /**
 23    * Common code for {@link org.apache.hivemind.service.impl.ClassFabImpl} and
 24    * {@link org.apache.hivemind.service.impl.InterfaceFabImpl}.
 25    *
 26    * @author Howard M. Lewis Ship
 27    * @since 1.1
 28    */
 29    public class AbstractFab
 30    {
 31   
 32    private final CtClass _ctClass;
 33   
 34    private final CtClassSource _source;
 35   
 36  2111 public AbstractFab(CtClassSource source, CtClass ctClass)
 37    {
 38  2111 _ctClass = ctClass;
 39  2111 _source = source;
 40    }
 41   
 42    /**
 43    * Map from Class to CtClass.
 44    *
 45    * @since 1.1
 46    */
 47    private Map _ctClassCache = new HashMap();
 48   
 49  5134 public void addInterface(Class interfaceClass)
 50    {
 51  5134 CtClass ctInterfaceClass = _source.getCtClass(interfaceClass);
 52   
 53  5134 _ctClass.addInterface(ctInterfaceClass);
 54    }
 55   
 56  23498 protected CtClass[] convertClasses(Class[] inputClasses)
 57    {
 58  23498 if (inputClasses == null || inputClasses.length == 0)
 59  19461 return null;
 60   
 61  4037 int count = inputClasses.length;
 62  4037 CtClass[] result = new CtClass[count];
 63   
 64  4037 for (int i = 0; i < count; i++)
 65    {
 66  9491 CtClass ctClass = convertClass(inputClasses[i]);
 67   
 68  9491 result[i] = ctClass;
 69    }
 70   
 71  4037 return result;
 72    }
 73   
 74    /**
 75    * @since 1.1
 76    */
 77  25301 protected CtClass convertClass(Class inputClass)
 78    {
 79  25301 CtClass result = (CtClass) _ctClassCache.get(inputClass);
 80   
 81  25301 if (result == null)
 82    {
 83  15794 result = _source.getCtClass(inputClass);
 84  15794 _ctClassCache.put(inputClass, result);
 85    }
 86   
 87  25301 return result;
 88    }
 89   
 90  2104 public Class createClass()
 91    {
 92  2104 return _source.createClass(_ctClass);
 93    }
 94   
 95  33804 protected CtClass getCtClass()
 96    {
 97  33804 return _ctClass;
 98    }
 99   
 100  10647 protected CtClassSource getSource()
 101    {
 102  10647 return _source;
 103    }
 104   
 105    }