Package org.objectweb.asm.util
Class Printer
- java.lang.Object
-
- org.objectweb.asm.util.Printer
-
-
Field Summary
Fields Modifier and Type Field Description protected int
api
The ASM API version implemented by this class.protected java.lang.StringBuffer
buf
A buffer that can be used to create strings.static java.lang.String[]
HANDLE_TAG
The names of thetag
field values forHandle
.static java.lang.String[]
OPCODES
The names of the Java Virtual Machine opcodes.java.util.List<java.lang.Object>
text
The text to be printed.static java.lang.String[]
TYPES
The names of the foroperand
parameter values of theMethodVisitor.visitIntInsn(int, int)
method whenopcode
isNEWARRAY
.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static void
appendString(java.lang.StringBuffer buf, java.lang.String s)
Appends a quoted string to a given buffer.java.util.List<java.lang.Object>
getText()
Returns the text constructed by this visitor.void
print(java.io.PrintWriter pw)
Prints the text constructed by this visitor.abstract void
visit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)
Class header.abstract void
visit(java.lang.String name, java.lang.Object value)
Annotation value.abstract Printer
visitAnnotation(java.lang.String name, java.lang.String desc)
Nested annotation value.abstract Printer
visitAnnotationDefault()
Method default annotation.abstract void
visitAnnotationEnd()
Annotation end.abstract Printer
visitArray(java.lang.String name)
Annotation array value.abstract Printer
visitClassAnnotation(java.lang.String desc, boolean visible)
Class annotation.abstract void
visitClassAttribute(Attribute attr)
Class attribute.abstract void
visitClassEnd()
Class end.Printer
visitClassTypeAnnotation(int typeRef, TypePath typePath, java.lang.String desc, boolean visible)
Class type annotation.abstract void
visitCode()
Method start.abstract void
visitEnum(java.lang.String name, java.lang.String desc, java.lang.String value)
Annotation enum value.abstract Printer
visitField(int access, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.Object value)
Class field.abstract Printer
visitFieldAnnotation(java.lang.String desc, boolean visible)
Field annotation.abstract void
visitFieldAttribute(Attribute attr)
Field attribute.abstract void
visitFieldEnd()
Field end.abstract void
visitFieldInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)
Method instruction.Printer
visitFieldTypeAnnotation(int typeRef, TypePath typePath, java.lang.String desc, boolean visible)
Field type annotation.abstract void
visitFrame(int type, int nLocal, java.lang.Object[] local, int nStack, java.lang.Object[] stack)
Method stack frame.abstract void
visitIincInsn(int var, int increment)
Method instruction.abstract void
visitInnerClass(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int access)
Class inner name.abstract void
visitInsn(int opcode)
Method instruction.Printer
visitInsnAnnotation(int typeRef, TypePath typePath, java.lang.String desc, boolean visible)
Instruction type annotation.abstract void
visitIntInsn(int opcode, int operand)
Method instruction.abstract void
visitInvokeDynamicInsn(java.lang.String name, java.lang.String desc, Handle bsm, java.lang.Object... bsmArgs)
Method instruction.abstract void
visitJumpInsn(int opcode, Label label)
Method instruction.abstract void
visitLabel(Label label)
Method label.abstract void
visitLdcInsn(java.lang.Object cst)
Method instruction.abstract void
visitLineNumber(int line, Label start)
Method debug info.abstract void
visitLocalVariable(java.lang.String name, java.lang.String desc, java.lang.String signature, Label start, Label end, int index)
Method debug info.Printer
visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, java.lang.String desc, boolean visible)
Local variable type annotation.abstract void
visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels)
Method instruction.abstract void
visitMaxs(int maxStack, int maxLocals)
Method max stack and max locals.abstract Printer
visitMethod(int access, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.String[] exceptions)
Class method.abstract Printer
visitMethodAnnotation(java.lang.String desc, boolean visible)
Method annotation.abstract void
visitMethodAttribute(Attribute attr)
Method attribute.abstract void
visitMethodEnd()
Method end.void
visitMethodInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)
Deprecated.void
visitMethodInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc, boolean itf)
Method instruction.Printer
visitMethodTypeAnnotation(int typeRef, TypePath typePath, java.lang.String desc, boolean visible)
Method type annotation.abstract void
visitMultiANewArrayInsn(java.lang.String desc, int dims)
Method instruction.abstract void
visitOuterClass(java.lang.String owner, java.lang.String name, java.lang.String desc)
Class outer class.void
visitParameter(java.lang.String name, int access)
Method parameter.abstract Printer
visitParameterAnnotation(int parameter, java.lang.String desc, boolean visible)
Method parameter annotation.abstract void
visitSource(java.lang.String file, java.lang.String debug)
Class source.abstract void
visitTableSwitchInsn(int min, int max, Label dflt, Label... labels)
Method instruction.Printer
visitTryCatchAnnotation(int typeRef, TypePath typePath, java.lang.String desc, boolean visible)
Try catch block type annotation.abstract void
visitTryCatchBlock(Label start, Label end, Label handler, java.lang.String type)
Method exception handler.abstract void
visitTypeInsn(int opcode, java.lang.String type)
Method instruction.abstract void
visitVarInsn(int opcode, int var)
Method instruction.
-
-
-
Field Detail
-
OPCODES
public static final java.lang.String[] OPCODES
The names of the Java Virtual Machine opcodes.
-
TYPES
public static final java.lang.String[] TYPES
The names of the foroperand
parameter values of theMethodVisitor.visitIntInsn(int, int)
method whenopcode
isNEWARRAY
.
-
HANDLE_TAG
public static final java.lang.String[] HANDLE_TAG
The names of thetag
field values forHandle
.
-
api
protected final int api
The ASM API version implemented by this class. The value of this field must be one ofOpcodes.ASM4
orOpcodes.ASM5
.
-
buf
protected final java.lang.StringBuffer buf
A buffer that can be used to create strings.
-
text
public final java.util.List<java.lang.Object> text
The text to be printed. Since the code of methods is not necessarily visited in sequential order, one method after the other, but can be interlaced (some instructions from method one, then some instructions from method two, then some instructions from method one again...), it is not possible to print the visited instructions directly to a sequential stream. A class is therefore printed in a two steps process: a string tree is constructed during the visit, and printed to a sequential stream at the end of the visit. This string tree is stored in this field, as a string list that can contain other string lists, which can themselves contain other string lists, and so on.
-
-
Constructor Detail
-
Printer
protected Printer(int api)
Constructs a newPrinter
.
-
-
Method Detail
-
visit
public abstract void visit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)
-
visitSource
public abstract void visitSource(java.lang.String file, java.lang.String debug)
Class source. SeeClassVisitor.visitSource(java.lang.String, java.lang.String)
.
-
visitOuterClass
public abstract void visitOuterClass(java.lang.String owner, java.lang.String name, java.lang.String desc)
Class outer class. SeeClassVisitor.visitOuterClass(java.lang.String, java.lang.String, java.lang.String)
.
-
visitClassAnnotation
public abstract Printer visitClassAnnotation(java.lang.String desc, boolean visible)
Class annotation. SeeClassVisitor.visitAnnotation(java.lang.String, boolean)
.
-
visitClassTypeAnnotation
public Printer visitClassTypeAnnotation(int typeRef, TypePath typePath, java.lang.String desc, boolean visible)
Class type annotation. SeeClassVisitor.visitTypeAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)
.
-
visitClassAttribute
public abstract void visitClassAttribute(Attribute attr)
Class attribute. SeeClassVisitor.visitAttribute(org.objectweb.asm.Attribute)
.
-
visitInnerClass
public abstract void visitInnerClass(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int access)
Class inner name. SeeClassVisitor.visitInnerClass(java.lang.String, java.lang.String, java.lang.String, int)
.
-
visitField
public abstract Printer visitField(int access, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.Object value)
-
visitMethod
public abstract Printer visitMethod(int access, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.String[] exceptions)
-
visitClassEnd
public abstract void visitClassEnd()
Class end. SeeClassVisitor.visitEnd()
.
-
visit
public abstract void visit(java.lang.String name, java.lang.Object value)
Annotation value. SeeAnnotationVisitor.visit(java.lang.String, java.lang.Object)
.
-
visitEnum
public abstract void visitEnum(java.lang.String name, java.lang.String desc, java.lang.String value)
Annotation enum value. SeeAnnotationVisitor.visitEnum(java.lang.String, java.lang.String, java.lang.String)
.
-
visitAnnotation
public abstract Printer visitAnnotation(java.lang.String name, java.lang.String desc)
Nested annotation value. SeeAnnotationVisitor.visitAnnotation(java.lang.String, java.lang.String)
.
-
visitArray
public abstract Printer visitArray(java.lang.String name)
Annotation array value. SeeAnnotationVisitor.visitArray(java.lang.String)
.
-
visitAnnotationEnd
public abstract void visitAnnotationEnd()
Annotation end. SeeAnnotationVisitor.visitEnd()
.
-
visitFieldAnnotation
public abstract Printer visitFieldAnnotation(java.lang.String desc, boolean visible)
Field annotation. SeeFieldVisitor.visitAnnotation(java.lang.String, boolean)
.
-
visitFieldTypeAnnotation
public Printer visitFieldTypeAnnotation(int typeRef, TypePath typePath, java.lang.String desc, boolean visible)
Field type annotation. SeeFieldVisitor.visitTypeAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)
.
-
visitFieldAttribute
public abstract void visitFieldAttribute(Attribute attr)
Field attribute. SeeFieldVisitor.visitAttribute(org.objectweb.asm.Attribute)
.
-
visitFieldEnd
public abstract void visitFieldEnd()
Field end. SeeFieldVisitor.visitEnd()
.
-
visitParameter
public void visitParameter(java.lang.String name, int access)
Method parameter. SeeMethodVisitor.visitParameter(String, int)
.
-
visitAnnotationDefault
public abstract Printer visitAnnotationDefault()
Method default annotation. SeeMethodVisitor.visitAnnotationDefault()
.
-
visitMethodAnnotation
public abstract Printer visitMethodAnnotation(java.lang.String desc, boolean visible)
Method annotation. SeeMethodVisitor.visitAnnotation(java.lang.String, boolean)
.
-
visitMethodTypeAnnotation
public Printer visitMethodTypeAnnotation(int typeRef, TypePath typePath, java.lang.String desc, boolean visible)
Method type annotation. SeeMethodVisitor.visitTypeAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)
.
-
visitParameterAnnotation
public abstract Printer visitParameterAnnotation(int parameter, java.lang.String desc, boolean visible)
Method parameter annotation. SeeMethodVisitor.visitParameterAnnotation(int, java.lang.String, boolean)
.
-
visitMethodAttribute
public abstract void visitMethodAttribute(Attribute attr)
Method attribute. SeeMethodVisitor.visitAttribute(org.objectweb.asm.Attribute)
.
-
visitCode
public abstract void visitCode()
Method start. SeeMethodVisitor.visitCode()
.
-
visitFrame
public abstract void visitFrame(int type, int nLocal, java.lang.Object[] local, int nStack, java.lang.Object[] stack)
Method stack frame. SeeMethodVisitor.visitFrame(int, int, java.lang.Object[], int, java.lang.Object[])
.
-
visitInsn
public abstract void visitInsn(int opcode)
Method instruction. SeeMethodVisitor.visitInsn(int)
.
-
visitIntInsn
public abstract void visitIntInsn(int opcode, int operand)
Method instruction. SeeMethodVisitor.visitIntInsn(int, int)
.
-
visitVarInsn
public abstract void visitVarInsn(int opcode, int var)
Method instruction. SeeMethodVisitor.visitVarInsn(int, int)
.
-
visitTypeInsn
public abstract void visitTypeInsn(int opcode, java.lang.String type)
Method instruction. SeeMethodVisitor.visitTypeInsn(int, java.lang.String)
.
-
visitFieldInsn
public abstract void visitFieldInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)
Method instruction. SeeMethodVisitor.visitFieldInsn(int, java.lang.String, java.lang.String, java.lang.String)
.
-
visitMethodInsn
@Deprecated public void visitMethodInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)
Deprecated.Method instruction. SeeMethodVisitor.visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String)
.
-
visitMethodInsn
public void visitMethodInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc, boolean itf)
Method instruction. SeeMethodVisitor.visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String)
.
-
visitInvokeDynamicInsn
public abstract void visitInvokeDynamicInsn(java.lang.String name, java.lang.String desc, Handle bsm, java.lang.Object... bsmArgs)
-
visitJumpInsn
public abstract void visitJumpInsn(int opcode, Label label)
Method instruction. SeeMethodVisitor.visitJumpInsn(int, org.objectweb.asm.Label)
.
-
visitLabel
public abstract void visitLabel(Label label)
Method label. SeeMethodVisitor.visitLabel(org.objectweb.asm.Label)
.
-
visitLdcInsn
public abstract void visitLdcInsn(java.lang.Object cst)
Method instruction. SeeMethodVisitor.visitLdcInsn(java.lang.Object)
.
-
visitIincInsn
public abstract void visitIincInsn(int var, int increment)
Method instruction. SeeMethodVisitor.visitIincInsn(int, int)
.
-
visitTableSwitchInsn
public abstract void visitTableSwitchInsn(int min, int max, Label dflt, Label... labels)
Method instruction. SeeMethodVisitor.visitTableSwitchInsn(int, int, org.objectweb.asm.Label, org.objectweb.asm.Label...)
.
-
visitLookupSwitchInsn
public abstract void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels)
Method instruction. SeeMethodVisitor.visitLookupSwitchInsn(org.objectweb.asm.Label, int[], org.objectweb.asm.Label[])
.
-
visitMultiANewArrayInsn
public abstract void visitMultiANewArrayInsn(java.lang.String desc, int dims)
Method instruction. SeeMethodVisitor.visitMultiANewArrayInsn(java.lang.String, int)
.
-
visitInsnAnnotation
public Printer visitInsnAnnotation(int typeRef, TypePath typePath, java.lang.String desc, boolean visible)
Instruction type annotation. SeeMethodVisitor.visitInsnAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)
.
-
visitTryCatchBlock
public abstract void visitTryCatchBlock(Label start, Label end, Label handler, java.lang.String type)
-
visitTryCatchAnnotation
public Printer visitTryCatchAnnotation(int typeRef, TypePath typePath, java.lang.String desc, boolean visible)
Try catch block type annotation. SeeMethodVisitor.visitTryCatchAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)
.
-
visitLocalVariable
public abstract void visitLocalVariable(java.lang.String name, java.lang.String desc, java.lang.String signature, Label start, Label end, int index)
-
visitLocalVariableAnnotation
public Printer visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, java.lang.String desc, boolean visible)
Local variable type annotation. SeeMethodVisitor.visitTryCatchAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)
.
-
visitLineNumber
public abstract void visitLineNumber(int line, Label start)
Method debug info. SeeMethodVisitor.visitLineNumber(int, org.objectweb.asm.Label)
.
-
visitMaxs
public abstract void visitMaxs(int maxStack, int maxLocals)
Method max stack and max locals. SeeMethodVisitor.visitMaxs(int, int)
.
-
visitMethodEnd
public abstract void visitMethodEnd()
Method end. SeeMethodVisitor.visitEnd()
.
-
getText
public java.util.List<java.lang.Object> getText()
Returns the text constructed by this visitor.- Returns:
- the text constructed by this visitor.
-
print
public void print(java.io.PrintWriter pw)
Prints the text constructed by this visitor.- Parameters:
pw
- the print writer to be used.
-
appendString
public static void appendString(java.lang.StringBuffer buf, java.lang.String s)
Appends a quoted string to a given buffer.- Parameters:
buf
- the buffer where the string must be added.s
- the string to be added.
-
-