Clover coverage report - PicoContainer - 1.1
Coverage timestamp: Thu Nov 4 2004 11:55:45 CST
file stats: LOC: 44   Methods: 3
NCLOC: 33   Classes: 1
30 day Evaluation Version distributed via the Maven Jar Repository. Clover is not free. You have 30 days to evaluate it. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover
 
 Source file Conditionals Statements Methods TOTAL
SetterIntrospector.java 100% 100% 100% 100%
coverage
 1   
 package org.picocontainer.defaults;
 2   
 
 3   
 import java.util.Map;
 4   
 import java.util.HashMap;
 5   
 import java.lang.reflect.Method;
 6   
 
 7   
 /**
 8   
  * @author Aslak Hellesøy
 9   
  * @version $Revision: 1.1 $
 10   
  */
 11   
 public class SetterIntrospector {
 12   
 
 13  12
     public Map getSetters(Class clazz) {
 14  12
         Map result = new HashMap();
 15  12
         Method[] methods = clazz.getMethods();
 16  12
         for (int i = 0; i < methods.length; i++) {
 17  160
             Method method = methods[i];
 18  160
             if (isSetter(method)) {
 19  46
                 result.put(getPropertyName(method), method);
 20   
             }
 21   
         }
 22  12
         return result;
 23   
     }
 24   
 
 25  46
     private String getPropertyName(Method method) {
 26  46
         final String name = method.getName();
 27  46
         String result = name.substring(3);
 28  46
         if(result.length() > 1 && !Character.isUpperCase(result.charAt(1))) {
 29  36
             result = "" + Character.toLowerCase(result.charAt(0)) + result.substring(1);
 30  10
         } else if(result.length() == 1) {
 31  6
             result = result.toLowerCase();
 32   
         }
 33  46
         return result;
 34   
     }
 35   
 
 36  160
     private boolean isSetter(Method method) {
 37  160
         final String name = method.getName();
 38  160
         return name.length() > 3 &&
 39   
                 name.startsWith("set") &&
 40   
                 method.getParameterTypes().length == 1;
 41   
     }
 42   
 
 43   
 }
 44