1 26 27 package net.sourceforge.groboutils.codecoverage.v2; 28 29 import java.io.IOException ; 30 31 import org.apache.bcel.classfile.JavaClass; 32 import org.apache.bcel.classfile.Method; 33 import org.apache.bcel.generic.ConstantPoolGen; 34 import org.apache.bcel.generic.InstructionHandle; 35 import org.apache.bcel.generic.InstructionList; 36 import org.apache.bcel.generic.LDC; 37 import org.apache.bcel.generic.MethodGen; 38 39 40 47 public class BCELCreatorUtil 48 { 49 private static final Class THIS_CLASS = BCELCreatorUtil.class; 50 51 52 public static JavaClass createJavaClass( Class c ) throws IOException 53 { 54 JavaClass jc = BytecodeLoaderUtil.loadJavaClass( c.getName() ); 55 return jc; 56 } 57 58 59 public static Method getMethod( JavaClass jc, int methodIndex ) 60 { 61 Method mL[] = jc.getMethods(); 62 Method m = mL[ methodIndex ]; 63 return m; 64 } 65 66 67 public static MethodGen createMethodGen( JavaClass jc, int methodIndex ) 68 { 69 MethodGen mg = createMethodGen( jc, getMethod( jc, methodIndex ) ); 70 return mg; 71 } 72 73 74 public static MethodGen createMethodGen( JavaClass jc, Method m ) 75 { 76 ConstantPoolGen cpg = new ConstantPoolGen( jc.getConstantPool() ); 77 MethodGen mg = new MethodGen( m, jc.getClassName(), cpg ); 78 return mg; 79 } 80 81 82 public static InstructionList createInstructionList() 83 { 84 InstructionList il = new InstructionList(); 85 return il; 86 } 87 88 89 public static InstructionHandle addInstructionHandle( 90 InstructionList il ) 91 { 92 InstructionHandle ih = il.append( new LDC( 0 ) ); 93 return ih; 94 } 95 96 97 public static InstructionHandle createInstructionHandle() 98 { 99 return addInstructionHandle( createInstructionList() ); 100 } 101 } 102 103 | Popular Tags |