| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.logicalcobwebs.asm.util.PrintClassVisitor
org.logicalcobwebs.asm.util.TraceClassVisitor
public class TraceClassVisitor
A PrintClassVisitor that prints a disassembled
 view of the classes it visits. This class visitor can be used alone (see the
 main method) to disassemble a class. It can also be used in
 the middle of class visitor chain to trace the class that is visited at a
 given point in this chain. This may be uselful for debugging purposes.
 
The trace printed when visiting the Hello class is the following:
 
 // compiled from Hello.java
 public class Hello {
   public static main ([Ljava/lang/String;)V
     GETSTATIC java/lang/System out Ljava/io/PrintStream;
     LDC "hello"
     INVOKEVIRTUAL java/io/PrintStream println (Ljava/lang/String;)V
     RETURN
     MAXSTACK = 2
     MAXLOCALS = 1
   public <init> ()V
     ALOAD 0
     INVOKESPECIAL java/lang/Object <init> ()V
     RETURN
     MAXSTACK = 1
     MAXLOCALS = 1
 }
 
 
 where Hello is defined by:
 
 
 public class Hello {
   public static void main (String[] args) {
     System.out.println("hello");
   }
 }
 
 
| Field Summary | |
|---|---|
| protected  ClassVisitor | cvThe ClassVisitorto which this visitor delegates
 calls. | 
| Fields inherited from class org.logicalcobwebs.asm.util.PrintClassVisitor | 
|---|
| buf, pw, text | 
| Constructor Summary | |
|---|---|
| TraceClassVisitor(ClassVisitor cv,
                  java.io.PrintWriter pw)Constructs a new TraceClassVisitorobject. | |
| Method Summary | |
|---|---|
| private  void | appendAccess(int access)Appends a string representation of the given access modifiers to buf. | 
| static void | main(java.lang.String[] args)Prints a disassembled view of the given class to the standard output. | 
|  void | visit(int access,
      java.lang.String name,
      java.lang.String superName,
      java.lang.String[] interfaces,
      java.lang.String sourceFile)Visits the header of the class. | 
|  void | visitAttribute(Attribute attr)Visits a non standard attribute of the class. | 
|  void | visitEnd()Visits the end of the class. | 
|  void | visitField(int access,
           java.lang.String name,
           java.lang.String desc,
           java.lang.Object value,
           Attribute attrs)Visits a field of the class. | 
|  void | visitInnerClass(java.lang.String name,
                java.lang.String outerName,
                java.lang.String innerName,
                int access)Visits information about an inner class. | 
|  CodeVisitor | visitMethod(int access,
            java.lang.String name,
            java.lang.String desc,
            java.lang.String[] exceptions,
            Attribute attrs)Visits a method of the class. | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
protected final ClassVisitor cv
ClassVisitor to which this visitor delegates
 calls. May be null.
| Constructor Detail | 
|---|
public TraceClassVisitor(ClassVisitor cv,
                         java.io.PrintWriter pw)
TraceClassVisitor object.
cv - the class visitor to which this adapter must delegate calls. May
      be null.pw - the print writer to be used to print the class.| Method Detail | 
|---|
public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Usage: TraceClassVisitor <fully qualified class name>
args - the command line arguments.
java.lang.Exception - if the class cannot be found, or if an IO exception
      occurs.
public void visit(int access,
                  java.lang.String name,
                  java.lang.String superName,
                  java.lang.String[] interfaces,
                  java.lang.String sourceFile)
ClassVisitor
access - the class's access flags (see Constants). This
      parameter also indicates if the class is deprecated.name - the internal name of the class (see getInternalName).superName - the internal of name of the super class (see getInternalName). For interfaces, the super
      class is Object. May be null, but only for the java.lang.Object class.interfaces - the internal names of the class's interfaces (see getInternalName). May be null.sourceFile - the name of the source file from which this class was
      compiled. May be null.
public void visitInnerClass(java.lang.String name,
                            java.lang.String outerName,
                            java.lang.String innerName,
                            int access)
ClassVisitor
name - the internal name of an inner class (see getInternalName).outerName - the internal name of the class to which the inner class
      belongs (see getInternalName). May be
      null.innerName - the (simple) name of the inner class inside its enclosing
      class. May be null for anonymous inner classes.access - the access flags of the inner class as originally declared
      in the enclosing class.
public void visitField(int access,
                       java.lang.String name,
                       java.lang.String desc,
                       java.lang.Object value,
                       Attribute attrs)
ClassVisitor
access - the field's access flags (see Constants). This
      parameter also indicates if the field is synthetic and/or deprecated.name - the field's name.desc - the field's descriptor (see Type).value - the field's initial value. This parameter, which may be
      null if the field does not have an initial value, must be an
      Integer, a Float, a
      Long, a Double or a
      String. This parameter is only used for static
      fields. Its value is ignored for non static fields, which must be
      initialized through bytecode instructions in constructors or methods.attrs - the non standard method attributes, linked together by their
      next field. May be null.
public CodeVisitor visitMethod(int access,
                               java.lang.String name,
                               java.lang.String desc,
                               java.lang.String[] exceptions,
                               Attribute attrs)
ClassVisitorCodeVisitor instance (or null) each time it
 is called, i.e., it should not return a previously returned visitor.
access - the method's access flags (see Constants). This
      parameter also indicates if the method is synthetic and/or deprecated.name - the method's name.desc - the method's descriptor (see Type).exceptions - the internal names of the method's exception
      classes (see getInternalName). May be
      null.attrs - the non standard method attributes, linked together by their
      next field. May be null.
public void visitAttribute(Attribute attr)
ClassVisitor
attr - a non standard class attribute. Must not be null.public void visitEnd()
ClassVisitor
visitEnd in interface ClassVisitorvisitEnd in class PrintClassVisitorprivate void appendAccess(int access)
buf.
access - some access modifiers.| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||