KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sourceforge > groboutils > codecoverage > v2 > BCELCreatorUtil


1 /*
2  * @(#)BCELCreatorUtil.java
3  *
4  * Copyright (C) 2003 Matt Albrecht
5  * groboclown@users.sourceforge.net
6  * http://groboutils.sourceforge.net
7  *
8  * Permission is hereby granted, free of charge, to any person obtaining a
9  * copy of this software and associated documentation files (the "Software"),
10  * to deal in the Software without restriction, including without limitation
11  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12  * and/or sell copies of the Software, and to permit persons to whom the
13  * Software is furnished to do so, subject to the following conditions:
14  *
15  * The above copyright notice and this permission notice shall be included in
16  * all copies or substantial portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24  * DEALINGS IN THE SOFTWARE.
25  */

26
27 package net.sourceforge.groboutils.codecoverage.v2;
28
29 import java.io.IOException JavaDoc;
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 /**
41  * Helper for creating BCEL objects.
42  *
43  * @author Matt Albrecht <a HREF="mailto:groboclown@users.sourceforge.net">groboclown@users.sourceforge.net</a>
44  * @version $Date: 2004/04/15 05:48:27 $
45  * @since January 23, 2003
46  */

47 public class BCELCreatorUtil
48 {
49     private static final Class JavaDoc THIS_CLASS = BCELCreatorUtil.class;
50     
51     
52     public static JavaClass createJavaClass( Class JavaDoc c ) throws IOException JavaDoc
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