diff --git a/src/main/java/gr/gousiosg/callgraph/ClassPrinter.java b/src/main/java/gr/gousiosg/callgraph/ClassPrinter.java
new file mode 100644
index 0000000..e21d484
--- /dev/null
+++ b/src/main/java/gr/gousiosg/callgraph/ClassPrinter.java
@@ -0,0 +1,47 @@
+package gr.gousiosg.callgraph;
+
+import org.objectweb.asm.AnnotationVisitor;
+import org.objectweb.asm.Attribute;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.FieldVisitor;
+import org.objectweb.asm.MethodVisitor;
+
+public class ClassPrinter implements ClassVisitor {
+ public void visit(int version, int access, String name, String signature,
+ String superName, String[] interfaces) {
+ System.out.println(name + " extends " + superName + " {");
+ }
+
+ public void visitSource(String source, String debug) {
+ }
+
+ public void visitOuterClass(String owner, String name, String desc) {
+ }
+
+ public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
+ return null;
+ }
+
+ public void visitAttribute(Attribute attr) {
+ }
+
+ public void visitInnerClass(String name, String outerName,
+ String innerName, int access) {
+ }
+
+ public FieldVisitor visitField(int access, String name, String desc,
+ String signature, Object value) {
+ System.out.println(" " + desc + " " + name);
+ return null;
+ }
+
+ public MethodVisitor visitMethod(int access, String name, String desc,
+ String signature, String[] exceptions) {
+ System.out.println(" " + name + desc);
+ return null;
+ }
+
+ public void visitEnd() {
+ System.out.println("}");
+ }
+}
diff --git a/src/main/java/gr/gousiosg/callgraph/JCallGraph.java b/src/main/java/gr/gousiosg/callgraph/JCallGraph.java
index 2f8a306..1e22617 100644
--- a/src/main/java/gr/gousiosg/callgraph/JCallGraph.java
+++ b/src/main/java/gr/gousiosg/callgraph/JCallGraph.java
@@ -1,9 +1,26 @@
+
package gr.gousiosg.callgraph;
-public class JCallGraph
-{
- public static void main( String[] args )
- {
- System.out.println( "Hello World!" );
+import java.io.IOException;
+
+import org.objectweb.asm.ClassReader;
+
+/**
+ * Constructs a callgraph out of a JAR archive. Can combine multiple archives
+ * into a single call graph.
+ *
+ * @author Georgios Gousios <gousiosg@gmail.com>
+ *
+ */
+public class JCallGraph {
+
+ public static void main(String[] args) {
+ try {
+ ClassPrinter cp = new ClassPrinter();
+ ClassReader cr = new ClassReader("java.lang.Thread");
+ cr.accept(cp, 0);
+ } catch (IOException e) {
+
+ }
}
}