org.objectweb.asm.util
public abstract class PrintCodeVisitor extends Object implements CodeVisitor
Field Summary | |
---|---|
protected StringBuffer | buf
A buffer used to convert instructions to strings. |
static String[] | OPCODES
The names of the Java Virtual Machine opcodes. |
protected List | text
The text to be printed. |
Constructor Summary | |
---|---|
protected | PrintCodeVisitor()
Constructs a new {@link PrintCodeVisitor PrintCodeVisitor} object. |
Method Summary | |
---|---|
List | getText()
Returns the code printed by this code visitor.
|
abstract void | printAttribute(Attribute attr)
Prints a non standard code attribute.
|
abstract void | printFieldInsn(int opcode, String owner, String name, String desc)
Prints a field instruction. |
abstract void | printIincInsn(int var, int increment)
Prints an IINC instruction.
|
abstract void | printInsn(int opcode)
Prints a zero operand instruction.
|
abstract void | printIntInsn(int opcode, int operand)
Prints an instruction with a single int operand.
|
abstract void | printJumpInsn(int opcode, Label label)
Prints a jump instruction. |
abstract void | printLabel(Label label)
Prints a label. |
abstract void | printLdcInsn(Object cst)
Prints a LDC instruction.
|
abstract void | printLineNumber(int line, Label start)
Prints a line number declaration.
|
abstract void | printLocalVariable(String name, String desc, Label start, Label end, int index)
Prints a local variable declaration.
|
abstract void | printLookupSwitchInsn(Label dflt, int[] keys, Label[] labels)
Prints a LOOKUPSWITCH instruction.
|
abstract void | printMaxs(int maxStack, int maxLocals)
Prints the maximum stack size and the maximum number of local variables of
the method.
|
abstract void | printMethodInsn(int opcode, String owner, String name, String desc)
Prints a method instruction. |
abstract void | printMultiANewArrayInsn(String desc, int dims)
Prints a MULTIANEWARRAY instruction.
|
abstract void | printTableSwitchInsn(int min, int max, Label dflt, Label[] labels)
Prints a TABLESWITCH instruction.
|
abstract void | printTryCatchBlock(Label start, Label end, Label handler, String type)
Prints a try catch block.
|
abstract void | printTypeInsn(int opcode, String desc)
Prints a type instruction. |
abstract void | printVarInsn(int opcode, int var)
Prints a local variable instruction. |
void | visitAttribute(Attribute attr) |
void | visitFieldInsn(int opcode, String owner, String name, String desc) |
void | visitIincInsn(int var, int increment) |
void | visitInsn(int opcode) |
void | visitIntInsn(int opcode, int operand) |
void | visitJumpInsn(int opcode, Label label) |
void | visitLabel(Label label) |
void | visitLdcInsn(Object cst) |
void | visitLineNumber(int line, Label start) |
void | visitLocalVariable(String name, String desc, Label start, Label end, int index) |
void | visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) |
void | visitMaxs(int maxStack, int maxLocals) |
void | visitMethodInsn(int opcode, String owner, String name, String desc) |
void | visitMultiANewArrayInsn(String desc, int dims) |
void | visitTableSwitchInsn(int min, int max, Label dflt, Label[] labels) |
void | visitTryCatchBlock(Label start, Label end, Label handler, String type) |
void | visitTypeInsn(int opcode, String desc) |
void | visitVarInsn(int opcode, int var) |
Returns: the code printed by this code visitor. See {@link PrintClassVisitor#text text}.
Parameters: attr a non standard code attribute.
Parameters: opcode the opcode of the type instruction to be printed. This opcode is either GETSTATIC, PUTSTATIC, GETFIELD or PUTFIELD. owner the internal name of the field's owner class (see {@link org.objectweb.asm.Type#getInternalName() getInternalName}). name the field's name. desc the field's descriptor (see {@link org.objectweb.asm.Type Type}).
Parameters: var index of the local variable to be incremented. increment amount to increment the local variable by.
Parameters: opcode the opcode of the instruction to be printed. This opcode is either NOP, ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, LCONST_0, LCONST_1, FCONST_0, FCONST_1, FCONST_2, DCONST_0, DCONST_1, IALOAD, LALOAD, FALOAD, DALOAD, AALOAD, BALOAD, CALOAD, SALOAD, IASTORE, LASTORE, FASTORE, DASTORE, AASTORE, BASTORE, CASTORE, SASTORE, POP, POP2, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, SWAP, IADD, LADD, FADD, DADD, ISUB, LSUB, FSUB, DSUB, IMUL, LMUL, FMUL, DMUL, IDIV, LDIV, FDIV, DDIV, IREM, LREM, FREM, DREM, INEG, LNEG, FNEG, DNEG, ISHL, LSHL, ISHR, LSHR, IUSHR, LUSHR, IAND, LAND, IOR, LOR, IXOR, LXOR, I2L, I2F, I2D, L2I, L2F, L2D, F2I, F2L, F2D, D2I, D2L, D2F, I2B, I2C, I2S, LCMP, FCMPL, FCMPG, DCMPL, DCMPG, IRETURN, LRETURN, FRETURN, DRETURN, ARETURN, RETURN, ARRAYLENGTH, ATHROW, MONITORENTER, or MONITOREXIT.
Parameters: opcode the opcode of the instruction to be printed. This opcode is either BIPUSH, SIPUSH or NEWARRAY. operand the operand of the instruction to be printed.
Parameters: opcode the opcode of the type instruction to be printed. This opcode is either IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ, IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ, IF_ACMPNE, GOTO, JSR, IFNULL or IFNONNULL. label the operand of the instruction to be printed. This operand is a label that designates the instruction to which the jump instruction may jump.
Parameters: label a {@link Label Label} object.
Parameters: cst the constant to be loaded on the stack. This parameter must be a non null {@link java.lang.Integer Integer}, a {@link java.lang.Float Float}, a {@link java.lang.Long Long}, a {@link java.lang.Double Double} or a {@link String String}.
Parameters: line a line number. This number refers to the source file from which the class was compiled. start the first instruction corresponding to this line number.
Parameters: name the name of a local variable. desc the type descriptor of this local variable. start the first instruction corresponding to the scope of this local variable (inclusive). end the last instruction corresponding to the scope of this local variable (exclusive). index the local variable's index.
Parameters: dflt beginning of the default handler block. keys the values of the keys. labels beginnings of the handler blocks. labels[i] is the beginning of the handler block for the keys[i] key.
Parameters: maxStack maximum stack size of the method. maxLocals maximum number of local variables for the method.
Parameters: opcode the opcode of the type instruction to be printed. This opcode is either INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or INVOKEINTERFACE. owner the internal name of the method's owner class (see {@link org.objectweb.asm.Type#getInternalName() getInternalName}). name the method's name. desc the method's descriptor (see {@link org.objectweb.asm.Type Type}).
Parameters: desc an array type descriptor (see {@link org.objectweb.asm.Type Type}). dims number of dimensions of the array to allocate.
Parameters: min the minimum key value. max the maximum key value. dflt beginning of the default handler block. labels beginnings of the handler blocks. labels[i] is the beginning of the handler block for the min + i key.
Parameters: start beginning of the exception handler's scope (inclusive). end end of the exception handler's scope (exclusive). handler beginning of the exception handler's code. type internal name of the type of exceptions handled by the handler, or null to catch any exceptions (for "finally" blocks).
Parameters: opcode the opcode of the type instruction to be printed. This opcode is either NEW, ANEWARRAY, CHECKCAST or INSTANCEOF. desc the operand of the instruction to be printed. This operand is must be a fully qualified class name in internal form, or a the type descriptor of an array type (see {@link org.objectweb.asm.Type Type}).
Parameters: opcode the opcode of the local variable instruction to be printed. This opcode is either ILOAD, LLOAD, FLOAD, DLOAD, ALOAD, ISTORE, LSTORE, FSTORE, DSTORE, ASTORE or RET. var the operand of the instruction to be printed. This operand is the index of a local variable.