java-callgraph

Details

diff --git a/src/main/java/gr/gousiosg/javacg/stat/ClassVisitor.java b/src/main/java/gr/gousiosg/javacg/stat/ClassVisitor.java
index 79d009d..36f35f1 100644
--- a/src/main/java/gr/gousiosg/javacg/stat/ClassVisitor.java
+++ b/src/main/java/gr/gousiosg/javacg/stat/ClassVisitor.java
@@ -28,6 +28,8 @@
 
 package gr.gousiosg.javacg.stat;
 
+import org.apache.bcel.classfile.Constant;
+import org.apache.bcel.classfile.ConstantPool;
 import org.apache.bcel.classfile.EmptyVisitor;
 import org.apache.bcel.classfile.JavaClass;
 import org.apache.bcel.classfile.Method;
@@ -40,20 +42,37 @@ import org.apache.bcel.generic.MethodGen;
  */
 public class ClassVisitor extends EmptyVisitor {
 
-    JavaClass clazz;
+    private JavaClass clazz;
     private ConstantPoolGen constants;
-
+    private String classReferenceFormat;
+    
     public ClassVisitor(JavaClass jc) {
         clazz = jc;
         constants = new ConstantPoolGen(clazz.getConstantPool());
+        classReferenceFormat = "C:" + clazz.getClassName() + ":%s";
     }
 
     public void visitJavaClass(JavaClass jc) {
+        jc.getConstantPool().accept(this);
         Method[] methods = jc.getMethods();
         for (int i = 0; i < methods.length; i++)
             methods[i].accept(this);
     }
 
+    public void visitConstantPool(ConstantPool constantPool) {
+        for (int i = 0; i < constantPool.getLength(); i++) {
+            Constant constant = constantPool.getConstant(i);
+            if (constant == null)
+                continue;
+            if (constant.getTag() == 7) {
+                String referencedClass = 
+                    constantPool.constantToString(constant);
+                System.out.println(String.format(classReferenceFormat,
+                        referencedClass));
+            }
+        }
+    }
+    
     public void visitMethod(Method method) {
         MethodGen mg = new MethodGen(method, clazz.getClassName(), constants);
         MethodVisitor visitor = new MethodVisitor(mg, clazz);
diff --git a/src/main/java/gr/gousiosg/javacg/stat/MethodVisitor.java b/src/main/java/gr/gousiosg/javacg/stat/MethodVisitor.java
index cec7de6..8fc7619 100644
--- a/src/main/java/gr/gousiosg/javacg/stat/MethodVisitor.java
+++ b/src/main/java/gr/gousiosg/javacg/stat/MethodVisitor.java
@@ -56,7 +56,8 @@ public class MethodVisitor extends EmptyVisitor {
         visitedClass = jc;
         mg = m;
         cp = mg.getConstantPool();
-        format = visitedClass.getClassName() + ":" + mg.getName() + " " + "%s:%s";
+        format = "M:" + visitedClass.getClassName() + ":" + mg.getName() 
+            + " " + "%s:%s";
     }
 
     public void start() {