ClassVisitor.java
Home
/
src /
main /
java /
gr /
gousiosg /
callgraph /
ClassVisitor.java
package gr.gousiosg.callgraph;
import org.apache.bcel.classfile.EmptyVisitor;
import org.apache.bcel.classfile.JavaClass;
import org.apache.bcel.classfile.Method;
import org.apache.bcel.generic.ConstantPoolGen;
import org.apache.bcel.generic.MethodGen;
/**
* The simplest of class visitors, invokes the method visitor class for each
* method found.
*/
public class ClassVisitor extends EmptyVisitor {
JavaClass clazz;
private ConstantPoolGen constants;
public ClassVisitor(JavaClass jc) {
clazz = jc;
constants = new ConstantPoolGen(clazz.getConstantPool());
}
public void visitJavaClass(JavaClass jc) {
Method[] methods = jc.getMethods();
for (int i = 0; i < methods.length; i++)
methods[i].accept(this);
}
public void visitMethod(Method method) {
MethodGen mg = new MethodGen(method, clazz.getClassName(), constants);
MethodVisitor visitor = new MethodVisitor(mg, clazz);
visitor.start();
}
public void start() {
visitJavaClass(clazz);
}
}