public class DumpMethodCall {\r
\r
public static void main(String[] args) {\r
- long count = 0;\r
- long t = System.currentTimeMillis();\r
- int classCount = 0;\r
- int methodCount = 0;\r
JavaProgram program = new JavaProgram(ClasspathUtil.getClassList(args));\r
ClassHierarchy ch = program.getClassHierarchy();\r
\r
for (ClassInfo c: program.getClasses()) {\r
- classCount++;\r
for (MethodInfo m: c.getMethods()) {\r
- methodCount++;\r
System.out.println(m.toLongString());\r
for (CallSite cs: m.getCallSites()) {\r
MethodInfo[] callees = ch.resolveCall(cs);\r
if (callees.length > 0) {\r
for (MethodInfo callee: callees) {\r
- //System.out.println(" [inside] " + callee.toLongString());\r
- count++;\r
+ System.out.println(" [inside] " + callee.toLongString());\r
}\r
} else {\r
- //System.out.println(" [outside] " + cs.toString());\r
- count++;\r
+ System.out.println(" [outside] " + cs.toString());\r
}\r
}\r
}\r
}\r
- System.out.println(classCount + " classes");\r
- System.out.println(methodCount + " methods");\r
- System.out.println(count + " method calls");\r
- System.out.println((System.currentTimeMillis() -t ) + "ms");\r
}\r
\r
}\r