| 限定符和类型 | 字段和说明 |
|---|---|
protected int |
id
Identifier of the annotation visitor variable in the produced code.
|
protected java.util.Map<Label,java.lang.String> |
labelNames
The label names.
|
protected java.lang.String |
name
The name of the visitor variable in the produced code.
|
| 限定符 | 构造器和说明 |
|---|---|
|
ASMifier()
Constructs a new
ASMifier. |
protected |
ASMifier(int api,
java.lang.String name,
int id)
Constructs a new
ASMifier. |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
appendConstant(java.lang.Object cst)
Appends a string representation of the given constant to the given buffer.
|
protected void |
appendLabel(Label l)
Appends the name of the given label to
buf. |
protected ASMifier |
createASMifier(java.lang.String name,
int id) |
protected void |
declareLabel(Label l)
Appends a declaration of the given label to
buf. |
static void |
main(java.lang.String[] args)
Prints the ASM source code to generate the given class to the standard output.
|
void |
visit(int version,
int access,
java.lang.String name,
java.lang.String signature,
java.lang.String superName,
java.lang.String[] interfaces)
Class header.
|
void |
visit(java.lang.String name,
java.lang.Object value)
Annotation value.
|
ASMifier |
visitAnnotation(java.lang.String desc,
boolean visible) |
ASMifier |
visitAnnotation(java.lang.String name,
java.lang.String desc)
Nested annotation value.
|
ASMifier |
visitAnnotationDefault()
Method default annotation.
|
void |
visitAnnotationEnd()
Annotation end.
|
ASMifier |
visitArray(java.lang.String name)
Annotation array value.
|
void |
visitAttribute(Attribute attr) |
ASMifier |
visitClassAnnotation(java.lang.String desc,
boolean visible)
Class annotation.
|
void |
visitClassAttribute(Attribute attr)
Class attribute.
|
void |
visitClassEnd()
Class end.
|
void |
visitCode()
Method start.
|
void |
visitEnum(java.lang.String name,
java.lang.String desc,
java.lang.String value)
Annotation enum value.
|
ASMifier |
visitField(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.Object value)
Class field.
|
ASMifier |
visitFieldAnnotation(java.lang.String desc,
boolean visible)
Field annotation.
|
void |
visitFieldAttribute(Attribute attr)
Field attribute.
|
void |
visitFieldEnd()
Field end.
|
void |
visitFieldInsn(int opcode,
java.lang.String owner,
java.lang.String name,
java.lang.String desc)
Method instruction.
|
void |
visitFrame(int type,
int nLocal,
java.lang.Object[] local,
int nStack,
java.lang.Object[] stack)
Method stack frame.
|
void |
visitIincInsn(int var,
int increment)
Method instruction.
|
void |
visitInnerClass(java.lang.String name,
java.lang.String outerName,
java.lang.String innerName,
int access)
Class inner name.
|
void |
visitInsn(int opcode)
Method instruction.
|
void |
visitIntInsn(int opcode,
int operand)
Method instruction.
|
void |
visitInvokeDynamicInsn(java.lang.String name,
java.lang.String desc,
Handle bsm,
java.lang.Object... bsmArgs)
Method instruction.
|
void |
visitJumpInsn(int opcode,
Label label)
Method instruction.
|
void |
visitLabel(Label label)
Method label.
|
void |
visitLdcInsn(java.lang.Object cst)
Method instruction.
|
void |
visitLineNumber(int line,
Label start)
Method debug info.
|
void |
visitLocalVariable(java.lang.String name,
java.lang.String desc,
java.lang.String signature,
Label start,
Label end,
int index)
Method debug info.
|
void |
visitLookupSwitchInsn(Label dflt,
int[] keys,
Label[] labels)
Method instruction.
|
void |
visitMaxs(int maxStack,
int maxLocals)
Method max stack and max locals.
|
ASMifier |
visitMethod(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.String[] exceptions)
Class method.
|
ASMifier |
visitMethodAnnotation(java.lang.String desc,
boolean visible)
Method annotation.
|
void |
visitMethodAttribute(Attribute attr)
Method attribute.
|
void |
visitMethodEnd()
Method end.
|
void |
visitMethodInsn(int opcode,
java.lang.String owner,
java.lang.String name,
java.lang.String desc)
Method instruction.
|
void |
visitMultiANewArrayInsn(java.lang.String desc,
int dims)
Method instruction.
|
void |
visitOuterClass(java.lang.String owner,
java.lang.String name,
java.lang.String desc)
Class outer class.
|
ASMifier |
visitParameterAnnotation(int parameter,
java.lang.String desc,
boolean visible)
Method parameter annotation.
|
void |
visitSource(java.lang.String file,
java.lang.String debug)
Class source.
|
void |
visitTableSwitchInsn(int min,
int max,
Label dflt,
Label... labels)
Method instruction.
|
void |
visitTryCatchBlock(Label start,
Label end,
Label handler,
java.lang.String type)
Method exception handler.
|
void |
visitTypeInsn(int opcode,
java.lang.String type)
Method instruction.
|
void |
visitVarInsn(int opcode,
int var)
Method instruction.
|
appendString, getText, printprotected final java.lang.String name
protected final int id
protected java.util.Map<Label,java.lang.String> labelNames
public ASMifier()
ASMifier. Subclasses must not use this constructor. Instead,
they must use the ASMifier(int, String, int) version.protected ASMifier(int api,
java.lang.String name,
int id)
ASMifier.api - the ASM API version implemented by this class. Must be one of
Opcodes.ASM4.name - the name of the visitor variable in the produced code.id - identifier of the annotation visitor variable in the produced code.public static void main(java.lang.String[] args)
throws java.lang.Exception
Usage: ASMifier [-debug] <binary class name or class file 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 version,
int access,
java.lang.String name,
java.lang.String signature,
java.lang.String superName,
java.lang.String[] interfaces)
Printerpublic void visitSource(java.lang.String file,
java.lang.String debug)
PrinterClassVisitor.visitSource(java.lang.String, java.lang.String).visitSource 在类中 Printerpublic void visitOuterClass(java.lang.String owner,
java.lang.String name,
java.lang.String desc)
PrinterClassVisitor.visitOuterClass(java.lang.String, java.lang.String, java.lang.String).visitOuterClass 在类中 Printerpublic ASMifier visitClassAnnotation(java.lang.String desc, boolean visible)
PrinterClassVisitor.visitAnnotation(java.lang.String, boolean).visitClassAnnotation 在类中 Printerpublic void visitClassAttribute(Attribute attr)
PrinterClassVisitor.visitAttribute(org.objectweb.asm.Attribute).visitClassAttribute 在类中 Printerpublic void visitInnerClass(java.lang.String name,
java.lang.String outerName,
java.lang.String innerName,
int access)
PrinterClassVisitor.visitInnerClass(java.lang.String, java.lang.String, java.lang.String, int).visitInnerClass 在类中 Printerpublic ASMifier visitField(int access, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.Object value)
PrinterClassVisitor.visitField(int, java.lang.String, java.lang.String, java.lang.String, java.lang.Object).visitField 在类中 Printerpublic ASMifier visitMethod(int access, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.String[] exceptions)
PrinterClassVisitor.visitMethod(int, java.lang.String, java.lang.String, java.lang.String, java.lang.String[]).visitMethod 在类中 Printerpublic void visitClassEnd()
PrinterClassVisitor.visitEnd().visitClassEnd 在类中 Printerpublic void visit(java.lang.String name,
java.lang.Object value)
PrinterAnnotationVisitor.visit(java.lang.String, java.lang.Object).public void visitEnum(java.lang.String name,
java.lang.String desc,
java.lang.String value)
PrinterAnnotationVisitor.visitEnum(java.lang.String, java.lang.String, java.lang.String).public ASMifier visitAnnotation(java.lang.String name, java.lang.String desc)
PrinterAnnotationVisitor.visitAnnotation(java.lang.String, java.lang.String).visitAnnotation 在类中 Printerpublic ASMifier visitArray(java.lang.String name)
PrinterAnnotationVisitor.visitArray(java.lang.String).visitArray 在类中 Printerpublic void visitAnnotationEnd()
PrinterAnnotationVisitor.visitEnd().visitAnnotationEnd 在类中 Printerpublic ASMifier visitFieldAnnotation(java.lang.String desc, boolean visible)
PrinterFieldVisitor.visitAnnotation(java.lang.String, boolean).visitFieldAnnotation 在类中 Printerpublic void visitFieldAttribute(Attribute attr)
PrinterFieldVisitor.visitAttribute(org.objectweb.asm.Attribute).visitFieldAttribute 在类中 Printerpublic void visitFieldEnd()
PrinterFieldVisitor.visitEnd().visitFieldEnd 在类中 Printerpublic ASMifier visitAnnotationDefault()
PrinterMethodVisitor.visitAnnotationDefault().visitAnnotationDefault 在类中 Printerpublic ASMifier visitMethodAnnotation(java.lang.String desc, boolean visible)
PrinterMethodVisitor.visitAnnotation(java.lang.String, boolean).visitMethodAnnotation 在类中 Printerpublic ASMifier visitParameterAnnotation(int parameter, java.lang.String desc, boolean visible)
PrinterMethodVisitor.visitParameterAnnotation(int, java.lang.String, boolean).visitParameterAnnotation 在类中 Printerpublic void visitMethodAttribute(Attribute attr)
PrinterMethodVisitor.visitAttribute(org.objectweb.asm.Attribute).visitMethodAttribute 在类中 Printerpublic void visitCode()
PrinterMethodVisitor.visitCode().public void visitFrame(int type,
int nLocal,
java.lang.Object[] local,
int nStack,
java.lang.Object[] stack)
PrinterMethodVisitor.visitFrame(int, int, java.lang.Object[], int, java.lang.Object[]).visitFrame 在类中 Printerpublic void visitInsn(int opcode)
PrinterMethodVisitor.visitInsn(int) .public void visitIntInsn(int opcode,
int operand)
PrinterMethodVisitor.visitIntInsn(int, int).visitIntInsn 在类中 Printerpublic void visitVarInsn(int opcode,
int var)
PrinterMethodVisitor.visitVarInsn(int, int).visitVarInsn 在类中 Printerpublic void visitTypeInsn(int opcode,
java.lang.String type)
PrinterMethodVisitor.visitTypeInsn(int, java.lang.String).visitTypeInsn 在类中 Printerpublic void visitFieldInsn(int opcode,
java.lang.String owner,
java.lang.String name,
java.lang.String desc)
PrinterMethodVisitor.visitFieldInsn(int, java.lang.String, java.lang.String, java.lang.String).visitFieldInsn 在类中 Printerpublic void visitMethodInsn(int opcode,
java.lang.String owner,
java.lang.String name,
java.lang.String desc)
PrinterMethodVisitor.visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String).visitMethodInsn 在类中 Printerpublic void visitInvokeDynamicInsn(java.lang.String name,
java.lang.String desc,
Handle bsm,
java.lang.Object... bsmArgs)
PrinterMethodVisitor.visitInvokeDynamicInsn(java.lang.String, java.lang.String, org.objectweb.asm.Handle, java.lang.Object...).visitInvokeDynamicInsn 在类中 Printerpublic void visitJumpInsn(int opcode,
Label label)
PrinterMethodVisitor.visitJumpInsn(int, org.objectweb.asm.Label).visitJumpInsn 在类中 Printerpublic void visitLabel(Label label)
PrinterMethodVisitor.visitLabel(org.objectweb.asm.Label).visitLabel 在类中 Printerpublic void visitLdcInsn(java.lang.Object cst)
PrinterMethodVisitor.visitLdcInsn(java.lang.Object).visitLdcInsn 在类中 Printerpublic void visitIincInsn(int var,
int increment)
PrinterMethodVisitor.visitIincInsn(int, int).visitIincInsn 在类中 Printerpublic void visitTableSwitchInsn(int min,
int max,
Label dflt,
Label... labels)
PrinterMethodVisitor.visitTableSwitchInsn(int, int, org.objectweb.asm.Label, org.objectweb.asm.Label...).visitTableSwitchInsn 在类中 Printerpublic void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels)
PrinterMethodVisitor.visitLookupSwitchInsn(org.objectweb.asm.Label, int[], org.objectweb.asm.Label[]).visitLookupSwitchInsn 在类中 Printerpublic void visitMultiANewArrayInsn(java.lang.String desc,
int dims)
PrinterMethodVisitor.visitMultiANewArrayInsn(java.lang.String, int).visitMultiANewArrayInsn 在类中 Printerpublic void visitTryCatchBlock(Label start, Label end, Label handler, java.lang.String type)
PrinterMethodVisitor.visitTryCatchBlock(org.objectweb.asm.Label, org.objectweb.asm.Label, org.objectweb.asm.Label, java.lang.String).visitTryCatchBlock 在类中 Printerpublic void visitLocalVariable(java.lang.String name,
java.lang.String desc,
java.lang.String signature,
Label start,
Label end,
int index)
PrinterMethodVisitor.visitLocalVariable(java.lang.String, java.lang.String, java.lang.String, org.objectweb.asm.Label, org.objectweb.asm.Label, int).visitLocalVariable 在类中 Printerpublic void visitLineNumber(int line,
Label start)
PrinterMethodVisitor.visitLineNumber(int, org.objectweb.asm.Label).visitLineNumber 在类中 Printerpublic void visitMaxs(int maxStack,
int maxLocals)
PrinterMethodVisitor.visitMaxs(int, int).public void visitMethodEnd()
PrinterMethodVisitor.visitEnd().visitMethodEnd 在类中 Printerpublic ASMifier visitAnnotation(java.lang.String desc, boolean visible)
public void visitAttribute(Attribute attr)
protected ASMifier createASMifier(java.lang.String name, int id)
protected void appendConstant(java.lang.Object cst)
cst - an Integer, Float, Long, Double or String
object. May be null.protected void declareLabel(Label l)
buf. This declaration is of the form
"Label lXXX = new Label();". Does nothing if the given label has already been declared.l - a label.