1 30 package org.objectweb.asm.commons; 31 32 import junit.framework.TestSuite; 33 34 import org.objectweb.asm.AbstractTest; 35 import org.objectweb.asm.ClassAdapter; 36 import org.objectweb.asm.ClassReader; 37 import org.objectweb.asm.ClassVisitor; 38 import org.objectweb.asm.ClassWriter; 39 import org.objectweb.asm.MethodVisitor; 40 import org.objectweb.asm.Opcodes; 41 42 47 public class AnalyzerAdapterTest extends AbstractTest { 48 49 public static TestSuite suite() throws Exception { 50 return new AnalyzerAdapterTest().getSuite(); 51 } 52 53 public void test() throws Exception { 54 ClassReader cr = new ClassReader(is); 55 if (cr.readInt(4) != Opcodes.V1_6) { 56 try { 57 ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES); 58 cr.accept(cw, 0); 59 cr = new ClassReader(cw.toByteArray()); 60 } catch (Exception e) { 61 return; 62 } 63 } 64 ClassWriter cw = new ClassWriter(0); 65 ClassVisitor cv = new ClassAdapter(cw) { 66 67 private String owner; 68 69 public void visit( 70 final int version, 71 final int access, 72 final String name, 73 final String signature, 74 final String superName, 75 final String [] interfaces) 76 { 77 owner = name; 78 cv.visit(version, 79 access, 80 name, 81 signature, 82 superName, 83 interfaces); 84 } 85 86 public MethodVisitor visitMethod( 87 final int access, 88 final String name, 89 final String desc, 90 final String signature, 91 final String [] exceptions) 92 { 93 MethodVisitor mv = cv.visitMethod(access, 94 name, 95 desc, 96 signature, 97 exceptions); 98 return new AnalyzerAdapter(owner, access, name, desc, mv); 99 } 100 }; 101 cr.accept(cv, ClassReader.EXPAND_FRAMES); 102 } 103 } 104 | Popular Tags |