32 */ 33 package org.openjdk.jmc.agent.test.util; 34 35 import java.util.Arrays; 36 37 import org.objectweb.asm.AnnotationVisitor; 38 import org.objectweb.asm.Attribute; 39 import org.objectweb.asm.ClassVisitor; 40 import org.objectweb.asm.FieldVisitor; 41 import org.objectweb.asm.MethodVisitor; 42 import org.objectweb.asm.Opcodes; 43 44 public class TestVisitor extends ClassVisitor { 45 46 public TestVisitor() { 47 super(Opcodes.ASM5); 48 } 49 50 @Override 51 public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { 52 System.out.println("Visiting class: " + name); //$NON-NLS-1$ 53 System.out.println("Class Major Version: " + version); //$NON-NLS-1$ 54 System.out.println("Super class: " + superName); //$NON-NLS-1$ 55 System.out.println("Signature: " + signature); //$NON-NLS-1$ 56 System.out.println("Interfaces: " + Arrays.toString(interfaces)); //$NON-NLS-1$ 57 58 super.visit(version, access, name, signature, superName, interfaces); 59 } 60 61 @Override 62 public void visitOuterClass(String owner, String name, String desc) { 63 System.out.println("Outer class: " + owner); //$NON-NLS-1$ 64 super.visitOuterClass(owner, name, desc); 65 } 66 67 @Override 68 public AnnotationVisitor visitAnnotation(String desc, boolean visible) { 69 System.out.println("Annotation: " + desc); //$NON-NLS-1$ 70 return super.visitAnnotation(desc, visible); 71 } 72 73 @Override 74 public void visitAttribute(Attribute attr) { 75 System.out.println("Class Attribute: " + attr.type); //$NON-NLS-1$ 76 super.visitAttribute(attr); 77 } 78 79 @Override 80 public void visitInnerClass(String name, String outerName, String innerName, int access) { 81 System.out.println("Inner Class: " + innerName + " defined in " + outerName); //$NON-NLS-1$ //$NON-NLS-2$ 82 super.visitInnerClass(name, outerName, innerName, access); 83 } 84 85 @Override 86 public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { 87 System.out.println("Field: " + name + " " + desc + " value:" + value); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 88 return super.visitField(access, name, desc, signature, value); 89 } 90 91 @Override 92 public void visitEnd() { 93 System.out.println("Visit ended"); //$NON-NLS-1$ 94 super.visitEnd(); 95 } 96 97 @Override 98 public MethodVisitor visitMethod( 99 int access, String name, String descriptor, String signature, String[] exceptions) { 100 System.out.println("Method: " + name + descriptor); //$NON-NLS-1$ 101 return super.visitMethod(access, name, descriptor, signature, exceptions); 102 } 103 104 @Override 105 public void visitSource(String source, String debug) { 106 System.out.println("Source: " + source); //$NON-NLS-1$ 107 super.visitSource(source, debug); 108 } 109 110 } | 32 */ 33 package org.openjdk.jmc.agent.test.util; 34 35 import java.util.Arrays; 36 37 import org.objectweb.asm.AnnotationVisitor; 38 import org.objectweb.asm.Attribute; 39 import org.objectweb.asm.ClassVisitor; 40 import org.objectweb.asm.FieldVisitor; 41 import org.objectweb.asm.MethodVisitor; 42 import org.objectweb.asm.Opcodes; 43 44 public class TestVisitor extends ClassVisitor { 45 46 public TestVisitor() { 47 super(Opcodes.ASM5); 48 } 49 50 @Override 51 public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { 52 System.out.println("Visiting class: " + name); 53 System.out.println("Class Major Version: " + version); 54 System.out.println("Super class: " + superName); 55 System.out.println("Signature: " + signature); 56 System.out.println("Interfaces: " + Arrays.toString(interfaces)); 57 58 super.visit(version, access, name, signature, superName, interfaces); 59 } 60 61 @Override 62 public void visitOuterClass(String owner, String name, String desc) { 63 System.out.println("Outer class: " + owner); 64 super.visitOuterClass(owner, name, desc); 65 } 66 67 @Override 68 public AnnotationVisitor visitAnnotation(String desc, boolean visible) { 69 System.out.println("Annotation: " + desc); 70 return super.visitAnnotation(desc, visible); 71 } 72 73 @Override 74 public void visitAttribute(Attribute attr) { 75 System.out.println("Class Attribute: " + attr.type); 76 super.visitAttribute(attr); 77 } 78 79 @Override 80 public void visitInnerClass(String name, String outerName, String innerName, int access) { 81 System.out.println("Inner Class: " + innerName + " defined in " + outerName); 82 super.visitInnerClass(name, outerName, innerName, access); 83 } 84 85 @Override 86 public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { 87 System.out.println("Field: " + name + " " + desc + " value:" + value); 88 return super.visitField(access, name, desc, signature, value); 89 } 90 91 @Override 92 public void visitEnd() { 93 System.out.println("Visit ended"); 94 super.visitEnd(); 95 } 96 97 @Override 98 public MethodVisitor visitMethod( 99 int access, String name, String descriptor, String signature, String[] exceptions) { 100 System.out.println("Method: " + name + descriptor); 101 return super.visitMethod(access, name, descriptor, signature, exceptions); 102 } 103 104 @Override 105 public void visitSource(String source, String debug) { 106 System.out.println("Source: " + source); 107 super.visitSource(source, debug); 108 } 109 110 } |