コード例 #1
0
 public void visit(
     final int version,
     final int access,
     final String name,
     final String signature,
     final String superName,
     final String[] interfaces) {
   if ((access & Opcodes.ACC_DEPRECATED) != 0) {
     cp.newUTF8("Deprecated");
   }
   if ((access & Opcodes.ACC_SYNTHETIC) != 0) {
     cp.newUTF8("Synthetic");
   }
   cp.newClass(name);
   if (signature != null) {
     cp.newUTF8("Signature");
     cp.newUTF8(signature);
   }
   if (superName != null) {
     cp.newClass(superName);
   }
   if (interfaces != null) {
     for (int i = 0; i < interfaces.length; ++i) {
       cp.newClass(interfaces[i]);
     }
   }
   cv.visit(version, access, name, signature, superName, interfaces);
 }
コード例 #2
0
 public void visitInnerClass(
     final String name, final String outerName, final String innerName, final int access) {
   cp.newUTF8("InnerClasses");
   if (name != null) {
     cp.newClass(name);
   }
   if (outerName != null) {
     cp.newClass(outerName);
   }
   if (innerName != null) {
     cp.newUTF8(innerName);
   }
   cv.visitInnerClass(name, outerName, innerName, access);
 }
コード例 #3
0
 public MethodVisitor visitMethod(
     final int access,
     final String name,
     final String desc,
     final String signature,
     final String[] exceptions) {
   if ((access & Opcodes.ACC_SYNTHETIC) != 0) {
     cp.newUTF8("Synthetic");
   }
   if ((access & Opcodes.ACC_DEPRECATED) != 0) {
     cp.newUTF8("Deprecated");
   }
   cp.newUTF8(name);
   cp.newUTF8(desc);
   if (signature != null) {
     cp.newUTF8("Signature");
     cp.newUTF8(signature);
   }
   if (exceptions != null) {
     cp.newUTF8("Exceptions");
     for (int i = 0; i < exceptions.length; ++i) {
       cp.newClass(exceptions[i]);
     }
   }
   return new MethodConstantsCollector(
       cv.visitMethod(access, name, desc, signature, exceptions), cp);
 }
コード例 #4
0
 public void visitTryCatchBlock(
     final Label start, final Label end, final Label handler, final String type) {
   if (type != null) {
     cp.newClass(type);
   }
   mv.visitTryCatchBlock(start, end, handler, type);
 }
コード例 #5
0
 public void visitOuterClass(final String owner, final String name, final String desc) {
   cp.newUTF8("EnclosingMethod");
   cp.newClass(owner);
   if (name != null && desc != null) {
     cp.newNameType(name, desc);
   }
   cv.visitOuterClass(owner, name, desc);
 }
コード例 #6
0
 public void visitMultiANewArrayInsn(final String desc, final int dims) {
   cp.newClass(desc);
   mv.visitMultiANewArrayInsn(desc, dims);
 }
コード例 #7
0
 public void visitTypeInsn(final int opcode, final String type) {
   cp.newClass(type);
   mv.visitTypeInsn(opcode, type);
 }