Package org.objectweb.asm.util
Class ASMifier
- java.lang.Object
-
- org.objectweb.asm.util.Printer
-
- org.objectweb.asm.util.ASMifier
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
appendConstant(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 tobuf
.protected ASMifier
createASMifier(String name, int id)
protected void
declareLabel(Label l)
Appends a declaration of the given label tobuf
.static void
main(String[] args)
Prints the ASM source code to generate the given class to the standard output.void
visit(int version, int access, String name, String signature, String superName, String[] interfaces)
Class header.void
visit(String name, Object value)
Annotation value.ASMifier
visitAnnotation(String desc, boolean visible)
ASMifier
visitAnnotation(String name, String desc)
Nested annotation value.ASMifier
visitAnnotationDefault()
Method default annotation.void
visitAnnotationEnd()
Annotation end.ASMifier
visitArray(String name)
Annotation array value.void
visitAttribute(Attribute attr)
ASMifier
visitClassAnnotation(String desc, boolean visible)
Class annotation.void
visitClassAttribute(Attribute attr)
Class attribute.void
visitClassEnd()
Class end.ASMifier
visitClassTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
Class type annotation.void
visitCode()
Method start.void
visitEnum(String name, String desc, String value)
Annotation enum value.ASMifier
visitField(int access, String name, String desc, String signature, Object value)
Class field.ASMifier
visitFieldAnnotation(String desc, boolean visible)
Field annotation.void
visitFieldAttribute(Attribute attr)
Field attribute.void
visitFieldEnd()
Field end.void
visitFieldInsn(int opcode, String owner, String name, String desc)
Method instruction.ASMifier
visitFieldTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
Field type annotation.void
visitFrame(int type, int nLocal, Object[] local, int nStack, Object[] stack)
Method stack frame.void
visitIincInsn(int var, int increment)
Method instruction.void
visitInnerClass(String name, String outerName, String innerName, int access)
Class inner name.void
visitInsn(int opcode)
Method instruction.ASMifier
visitInsnAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
Instruction type annotation.void
visitIntInsn(int opcode, int operand)
Method instruction.void
visitInvokeDynamicInsn(String name, String desc, Handle bsm, Object... bsmArgs)
Method instruction.void
visitJumpInsn(int opcode, Label label)
Method instruction.void
visitLabel(Label label)
Method label.void
visitLdcInsn(Object cst)
Method instruction.void
visitLineNumber(int line, Label start)
Method debug info.void
visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index)
Method debug info.Printer
visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String desc, boolean visible)
Local variable type annotation.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, String name, String desc, String signature, String[] exceptions)
Class method.ASMifier
visitMethodAnnotation(String desc, boolean visible)
Method annotation.void
visitMethodAttribute(Attribute attr)
Method attribute.void
visitMethodEnd()
Method end.void
visitMethodInsn(int opcode, String owner, String name, String desc)
Deprecated.void
visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf)
Method instruction.ASMifier
visitMethodTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
Method type annotation.void
visitMultiANewArrayInsn(String desc, int dims)
Method instruction.void
visitOuterClass(String owner, String name, String desc)
Class outer class.void
visitParameter(String parameterName, int access)
Method parameter.ASMifier
visitParameterAnnotation(int parameter, String desc, boolean visible)
Method parameter annotation.void
visitSource(String file, String debug)
Class source.void
visitTableSwitchInsn(int min, int max, Label dflt, Label... labels)
Method instruction.ASMifier
visitTryCatchAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
Try catch block type annotation.void
visitTryCatchBlock(Label start, Label end, Label handler, String type)
Method exception handler.ASMifier
visitTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
ASMifier
visitTypeAnnotation(String method, int typeRef, TypePath typePath, String desc, boolean visible)
void
visitTypeInsn(int opcode, String type)
Method instruction.void
visitVarInsn(int opcode, int var)
Method instruction.-
Methods inherited from class org.objectweb.asm.util.Printer
appendString, getText, print
-
-
-
-
Field Detail
-
name
protected final String name
The name of the visitor variable in the produced code.
-
id
protected final int id
Identifier of the annotation visitor variable in the produced code.
-
-
Constructor Detail
-
ASMifier
public ASMifier()
Constructs a newASMifier
. Subclasses must not use this constructor. Instead, they must use theASMifier(int, String, int)
version.- Throws:
IllegalStateException
- If a subclass calls this constructor.
-
ASMifier
protected ASMifier(int api, String name, int id)
Constructs a newASMifier
.- Parameters:
api
- the ASM API version implemented by this class. Must be one ofOpcodes.ASM4
orOpcodes.ASM5
.name
- the name of the visitor variable in the produced code.id
- identifier of the annotation visitor variable in the produced code.
-
-
Method Detail
-
main
public static void main(String[] args) throws Exception
Prints the ASM source code to generate the given class to the standard output.Usage: ASMifier [-debug] <binary class name or class file name>
- Parameters:
args
- the command line arguments.- Throws:
Exception
- if the class cannot be found, or if an IO exception occurs.
-
visit
public void visit(int version, int access, String name, String signature, String superName, String[] interfaces)
Description copied from class:Printer
-
visitSource
public void visitSource(String file, String debug)
Description copied from class:Printer
Class source. SeeClassVisitor.visitSource(java.lang.String, java.lang.String)
.- Specified by:
visitSource
in classPrinter
-
visitOuterClass
public void visitOuterClass(String owner, String name, String desc)
Description copied from class:Printer
Class outer class. SeeClassVisitor.visitOuterClass(java.lang.String, java.lang.String, java.lang.String)
.- Specified by:
visitOuterClass
in classPrinter
-
visitClassAnnotation
public ASMifier visitClassAnnotation(String desc, boolean visible)
Description copied from class:Printer
Class annotation. SeeClassVisitor.visitAnnotation(java.lang.String, boolean)
.- Specified by:
visitClassAnnotation
in classPrinter
-
visitClassTypeAnnotation
public ASMifier visitClassTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
Description copied from class:Printer
Class type annotation. SeeClassVisitor.visitTypeAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)
.- Overrides:
visitClassTypeAnnotation
in classPrinter
-
visitClassAttribute
public void visitClassAttribute(Attribute attr)
Description copied from class:Printer
Class attribute. SeeClassVisitor.visitAttribute(org.objectweb.asm.Attribute)
.- Specified by:
visitClassAttribute
in classPrinter
-
visitInnerClass
public void visitInnerClass(String name, String outerName, String innerName, int access)
Description copied from class:Printer
Class inner name. SeeClassVisitor.visitInnerClass(java.lang.String, java.lang.String, java.lang.String, int)
.- Specified by:
visitInnerClass
in classPrinter
-
visitField
public ASMifier visitField(int access, String name, String desc, String signature, Object value)
Description copied from class:Printer
Class field. SeeClassVisitor.visitField(int, java.lang.String, java.lang.String, java.lang.String, java.lang.Object)
.- Specified by:
visitField
in classPrinter
-
visitMethod
public ASMifier visitMethod(int access, String name, String desc, String signature, String[] exceptions)
Description copied from class:Printer
Class method. SeeClassVisitor.visitMethod(int, java.lang.String, java.lang.String, java.lang.String, java.lang.String[])
.- Specified by:
visitMethod
in classPrinter
-
visitClassEnd
public void visitClassEnd()
Description copied from class:Printer
Class end. SeeClassVisitor.visitEnd()
.- Specified by:
visitClassEnd
in classPrinter
-
visit
public void visit(String name, Object value)
Description copied from class:Printer
Annotation value. SeeAnnotationVisitor.visit(java.lang.String, java.lang.Object)
.
-
visitEnum
public void visitEnum(String name, String desc, String value)
Description copied from class:Printer
Annotation enum value. SeeAnnotationVisitor.visitEnum(java.lang.String, java.lang.String, java.lang.String)
.
-
visitAnnotation
public ASMifier visitAnnotation(String name, String desc)
Description copied from class:Printer
Nested annotation value. SeeAnnotationVisitor.visitAnnotation(java.lang.String, java.lang.String)
.- Specified by:
visitAnnotation
in classPrinter
-
visitArray
public ASMifier visitArray(String name)
Description copied from class:Printer
Annotation array value. SeeAnnotationVisitor.visitArray(java.lang.String)
.- Specified by:
visitArray
in classPrinter
-
visitAnnotationEnd
public void visitAnnotationEnd()
Description copied from class:Printer
Annotation end. SeeAnnotationVisitor.visitEnd()
.- Specified by:
visitAnnotationEnd
in classPrinter
-
visitFieldAnnotation
public ASMifier visitFieldAnnotation(String desc, boolean visible)
Description copied from class:Printer
Field annotation. SeeFieldVisitor.visitAnnotation(java.lang.String, boolean)
.- Specified by:
visitFieldAnnotation
in classPrinter
-
visitFieldTypeAnnotation
public ASMifier visitFieldTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
Description copied from class:Printer
Field type annotation. SeeFieldVisitor.visitTypeAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)
.- Overrides:
visitFieldTypeAnnotation
in classPrinter
-
visitFieldAttribute
public void visitFieldAttribute(Attribute attr)
Description copied from class:Printer
Field attribute. SeeFieldVisitor.visitAttribute(org.objectweb.asm.Attribute)
.- Specified by:
visitFieldAttribute
in classPrinter
-
visitFieldEnd
public void visitFieldEnd()
Description copied from class:Printer
Field end. SeeFieldVisitor.visitEnd()
.- Specified by:
visitFieldEnd
in classPrinter
-
visitParameter
public void visitParameter(String parameterName, int access)
Description copied from class:Printer
Method parameter. SeeMethodVisitor.visitParameter(String, int)
.- Overrides:
visitParameter
in classPrinter
-
visitAnnotationDefault
public ASMifier visitAnnotationDefault()
Description copied from class:Printer
Method default annotation. SeeMethodVisitor.visitAnnotationDefault()
.- Specified by:
visitAnnotationDefault
in classPrinter
-
visitMethodAnnotation
public ASMifier visitMethodAnnotation(String desc, boolean visible)
Description copied from class:Printer
Method annotation. SeeMethodVisitor.visitAnnotation(java.lang.String, boolean)
.- Specified by:
visitMethodAnnotation
in classPrinter
-
visitMethodTypeAnnotation
public ASMifier visitMethodTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
Description copied from class:Printer
Method type annotation. SeeMethodVisitor.visitTypeAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)
.- Overrides:
visitMethodTypeAnnotation
in classPrinter
-
visitParameterAnnotation
public ASMifier visitParameterAnnotation(int parameter, String desc, boolean visible)
Description copied from class:Printer
Method parameter annotation. SeeMethodVisitor.visitParameterAnnotation(int, java.lang.String, boolean)
.- Specified by:
visitParameterAnnotation
in classPrinter
-
visitMethodAttribute
public void visitMethodAttribute(Attribute attr)
Description copied from class:Printer
Method attribute. SeeMethodVisitor.visitAttribute(org.objectweb.asm.Attribute)
.- Specified by:
visitMethodAttribute
in classPrinter
-
visitCode
public void visitCode()
Description copied from class:Printer
Method start. SeeMethodVisitor.visitCode()
.
-
visitFrame
public void visitFrame(int type, int nLocal, Object[] local, int nStack, Object[] stack)
Description copied from class:Printer
Method stack frame. SeeMethodVisitor.visitFrame(int, int, java.lang.Object[], int, java.lang.Object[])
.- Specified by:
visitFrame
in classPrinter
-
visitInsn
public void visitInsn(int opcode)
Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitInsn(int)
.
-
visitIntInsn
public void visitIntInsn(int opcode, int operand)
Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitIntInsn(int, int)
.- Specified by:
visitIntInsn
in classPrinter
-
visitVarInsn
public void visitVarInsn(int opcode, int var)
Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitVarInsn(int, int)
.- Specified by:
visitVarInsn
in classPrinter
-
visitTypeInsn
public void visitTypeInsn(int opcode, String type)
Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitTypeInsn(int, java.lang.String)
.- Specified by:
visitTypeInsn
in classPrinter
-
visitFieldInsn
public void visitFieldInsn(int opcode, String owner, String name, String desc)
Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitFieldInsn(int, java.lang.String, java.lang.String, java.lang.String)
.- Specified by:
visitFieldInsn
in classPrinter
-
visitMethodInsn
@Deprecated public void visitMethodInsn(int opcode, String owner, String name, String desc)
Deprecated.Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String)
.- Overrides:
visitMethodInsn
in classPrinter
-
visitMethodInsn
public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf)
Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String)
.- Overrides:
visitMethodInsn
in classPrinter
-
visitInvokeDynamicInsn
public void visitInvokeDynamicInsn(String name, String desc, Handle bsm, Object... bsmArgs)
Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitInvokeDynamicInsn(java.lang.String, java.lang.String, org.objectweb.asm.Handle, java.lang.Object...)
.- Specified by:
visitInvokeDynamicInsn
in classPrinter
-
visitJumpInsn
public void visitJumpInsn(int opcode, Label label)
Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitJumpInsn(int, org.objectweb.asm.Label)
.- Specified by:
visitJumpInsn
in classPrinter
-
visitLabel
public void visitLabel(Label label)
Description copied from class:Printer
Method label. SeeMethodVisitor.visitLabel(org.objectweb.asm.Label)
.- Specified by:
visitLabel
in classPrinter
-
visitLdcInsn
public void visitLdcInsn(Object cst)
Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitLdcInsn(java.lang.Object)
.- Specified by:
visitLdcInsn
in classPrinter
-
visitIincInsn
public void visitIincInsn(int var, int increment)
Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitIincInsn(int, int)
.- Specified by:
visitIincInsn
in classPrinter
-
visitTableSwitchInsn
public void visitTableSwitchInsn(int min, int max, Label dflt, Label... labels)
Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitTableSwitchInsn(int, int, org.objectweb.asm.Label, org.objectweb.asm.Label...)
.- Specified by:
visitTableSwitchInsn
in classPrinter
-
visitLookupSwitchInsn
public void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels)
Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitLookupSwitchInsn(org.objectweb.asm.Label, int[], org.objectweb.asm.Label[])
.- Specified by:
visitLookupSwitchInsn
in classPrinter
-
visitMultiANewArrayInsn
public void visitMultiANewArrayInsn(String desc, int dims)
Description copied from class:Printer
Method instruction. SeeMethodVisitor.visitMultiANewArrayInsn(java.lang.String, int)
.- Specified by:
visitMultiANewArrayInsn
in classPrinter
-
visitInsnAnnotation
public ASMifier visitInsnAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
Description copied from class:Printer
Instruction type annotation. SeeMethodVisitor.visitInsnAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)
.- Overrides:
visitInsnAnnotation
in classPrinter
-
visitTryCatchBlock
public void visitTryCatchBlock(Label start, Label end, Label handler, String type)
Description copied from class:Printer
Method exception handler. SeeMethodVisitor.visitTryCatchBlock(org.objectweb.asm.Label, org.objectweb.asm.Label, org.objectweb.asm.Label, java.lang.String)
.- Specified by:
visitTryCatchBlock
in classPrinter
-
visitTryCatchAnnotation
public ASMifier visitTryCatchAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
Description copied from class:Printer
Try catch block type annotation. SeeMethodVisitor.visitTryCatchAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)
.- Overrides:
visitTryCatchAnnotation
in classPrinter
-
visitLocalVariable
public void visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index)
Description copied from class:Printer
Method debug info. SeeMethodVisitor.visitLocalVariable(java.lang.String, java.lang.String, java.lang.String, org.objectweb.asm.Label, org.objectweb.asm.Label, int)
.- Specified by:
visitLocalVariable
in classPrinter
-
visitLocalVariableAnnotation
public Printer visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String desc, boolean visible)
Description copied from class:Printer
Local variable type annotation. SeeMethodVisitor.visitTryCatchAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)
.- Overrides:
visitLocalVariableAnnotation
in classPrinter
-
visitLineNumber
public void visitLineNumber(int line, Label start)
Description copied from class:Printer
Method debug info. SeeMethodVisitor.visitLineNumber(int, org.objectweb.asm.Label)
.- Specified by:
visitLineNumber
in classPrinter
-
visitMaxs
public void visitMaxs(int maxStack, int maxLocals)
Description copied from class:Printer
Method max stack and max locals. SeeMethodVisitor.visitMaxs(int, int)
.
-
visitMethodEnd
public void visitMethodEnd()
Description copied from class:Printer
Method end. SeeMethodVisitor.visitEnd()
.- Specified by:
visitMethodEnd
in classPrinter
-
visitTypeAnnotation
public ASMifier visitTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
-
visitTypeAnnotation
public ASMifier visitTypeAnnotation(String method, int typeRef, TypePath typePath, String desc, boolean visible)
-
visitAttribute
public void visitAttribute(Attribute attr)
-
appendConstant
protected void appendConstant(Object cst)
Appends a string representation of the given constant to the given buffer.
-
declareLabel
protected void declareLabel(Label l)
Appends a declaration of the given label tobuf
. This declaration is of the form "Label lXXX = new Label();". Does nothing if the given label has already been declared.- Parameters:
l
- a label.
-
-