1 6 package de.uka.ipd.coverage.junit; 7 8 import java.util.HashMap ; 9 import java.util.Map ; 10 import java.util.StringTokenizer ; 11 12 import junit.framework.TestResult; 13 14 import org.apache.bcel.Repository; 15 16 import de.uka.ipd.coverage.recording.RegisteredMethod; 17 import de.uka.ipd.coverage.recording.RegisteredMethodBuilder; 18 import de.uka.ipd.coverage.utils.Logger; 19 20 30 public class CoverageTestResult extends TestResult { 31 32 private static Map registeredMethodMap = new HashMap (); 34 35 40 private static void registerClass(String className) { 41 RegisteredMethodBuilder builder = new RegisteredMethodBuilder(); 42 builder.createRegisteredMethods(Repository.lookupClass(className)); 43 RegisteredMethod[] rMethods = builder.getRegisteredMethods(); 44 Logger.getInstance().debug("Registriere " + rMethods.length + " Methoden der Klasse " + className); for (int i = 0; i < rMethods.length; i++ ) { 46 String id = rMethods[i].getHashKey(); 47 Logger.getInstance().debug("Methode registriert " + id); registeredMethodMap.put(id, rMethods[i]); 49 } 50 51 Logger.getInstance().debug(" Es sind " + getRegisteredMethods().length + " Methoden registriert"); } 53 54 63 public static RegisteredMethod getRegisteredMethod(String id) { 64 Map rMethodMap = registeredMethodMap; 65 66 if (!rMethodMap.containsKey(id)) { 68 StringTokenizer tokenizer = new StringTokenizer (id, ":"); String className = tokenizer.nextToken(); 70 registerClass(className); 71 } 72 RegisteredMethod method = (RegisteredMethod) rMethodMap.get(id); 73 return method; 74 } 75 76 public static RegisteredMethod[] getRegisteredMethods() { 77 return (RegisteredMethod[]) registeredMethodMap.values(). 78 toArray(new RegisteredMethod[registeredMethodMap.size()]); 79 } 80 81 84 public static void setRegisteredMethods(RegisteredMethod[] rm) { 85 registeredMethodMap.clear(); 86 for (int i = 0; i < rm.length; i++) { 87 registeredMethodMap.put(rm[i].getHashKey(), rm[i]); 88 } 89 } 90 } 91 | Popular Tags |