org.objectweb.asm.util

## Class Textifier

- java.lang.Object
- - org.objectweb.asm.util.Printer
  - - org.objectweb.asm.util.Textifier

-     public class Textifier
      extends Printer

  A `Printer` that prints a disassembled view of the classes it visits.
  Author:
    Eric Bruneton

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `CLASS_DECLARATION` Constant used in `appendDescriptor` for class signatures, formatted in default Java notation (non-bytecode)
    `static int` | `CLASS_SIGNATURE` Constant used in `appendDescriptor` for class signatures, formatted in bytecode notation
    `static int` | `FIELD_DESCRIPTOR` Constant used in `appendDescriptor` for field descriptors, formatted in bytecode notation
    `static int` | `FIELD_SIGNATURE` Constant used in `appendDescriptor` for field signatures, formatted in bytecode notation
    `static int` | `HANDLE_DESCRIPTOR` Constant used in `appendDescriptor` for handle descriptors, formatted in bytecode notation
    `static int` | `INTERNAL_NAME` Constant used in `appendDescriptor` for internal type names in bytecode notation.
    `protected Map<Label,String>` | `labelNames` The label names.
    `protected String` | `ltab` Tab for labels.
    `static int` | `METHOD_DESCRIPTOR` Constant used in `appendDescriptor` for method descriptors, formatted in bytecode notation
    `static int` | `METHOD_SIGNATURE` Constant used in `appendDescriptor` for method signatures, formatted in bytecode notation
    `static int` | `PARAMETERS_DECLARATION` Constant used in `appendDescriptor` for method parameter signatures, formatted in default Java notation (non-bytecode)
    `protected String` | `tab` Tab for class members.
    `protected String` | `tab2` Tab for bytecode instructions.
    `protected String` | `tab3` Tab for table and lookup switch instructions.
    `static int` | `TYPE_DECLARATION` Constant used in `appendDescriptor` for field or method return value signatures, formatted in default Java notation (non-bytecode)

    - ### Fields inherited from class org.objectweb.asm.util.Printer

      `api, buf, HANDLE_TAG, OPCODES, text, TYPES`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `Textifier()` Constructs a new `Textifier`.
    `protected` | `Textifier(int api)` Constructs a new `Textifier`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `appendDescriptor(int type, String desc)` Appends an internal name, a type descriptor or a type signature to `buf`.
    `protected void` | `appendHandle(Handle h)` Appends the information about the given handle to `buf`.
    `protected void` | `appendLabel(Label l)` Appends the name of the given label to `buf`.
    `protected Textifier` | `createTextifier()` Creates a new TraceVisitor instance.
    `static void` | `main(String[] args)` Prints a disassembled view of 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.
    `Textifier` | `visitAnnotation(String desc, boolean visible)` Prints a disassembled view of the given annotation.
    `Textifier` | `visitAnnotation(String name, String desc)` Nested annotation value.
    `Textifier` | `visitAnnotationDefault()` Method default annotation.
    `void` | `visitAnnotationEnd()` Annotation end.
    `Textifier` | `visitArray(String name)` Annotation array value.
    `void` | `visitAttribute(Attribute attr)` Prints a disassembled view of the given attribute.
    `Textifier` | `visitClassAnnotation(String desc, boolean visible)` Class annotation.
    `void` | `visitClassAttribute(Attribute attr)` Class attribute.
    `void` | `visitClassEnd()` Class end.
    `Printer` | `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.
    `Textifier` | `visitField(int access, String name, String desc, String signature, Object value)` Class field.
    `Textifier` | `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.
    `Printer` | `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.
    `Printer` | `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.
    `Textifier` | `visitMethod(int access, String name, String desc, String signature, String[] exceptions)` Class method.
    `Textifier` | `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.
    `Printer` | `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 name, int access)` Method parameter.
    `Textifier` | `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.
    `Printer` | `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.
    `Textifier` | `visitTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)` Prints a disassembled view of the given type annotation.
    `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`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### INTERNAL_NAME

          public static final int INTERNAL_NAME

      Constant used in `appendDescriptor` for internal type names in bytecode notation.
      See Also:
        Constant Field Values

    - #### FIELD_DESCRIPTOR

          public static final int FIELD_DESCRIPTOR

      Constant used in `appendDescriptor` for field descriptors, formatted in bytecode notation
      See Also:
        Constant Field Values

    - #### FIELD_SIGNATURE

          public static final int FIELD_SIGNATURE

      Constant used in `appendDescriptor` for field signatures, formatted in bytecode notation
      See Also:
        Constant Field Values

    - #### METHOD_DESCRIPTOR

          public static final int METHOD_DESCRIPTOR

      Constant used in `appendDescriptor` for method descriptors, formatted in bytecode notation
      See Also:
        Constant Field Values

    - #### METHOD_SIGNATURE

          public static final int METHOD_SIGNATURE

      Constant used in `appendDescriptor` for method signatures, formatted in bytecode notation
      See Also:
        Constant Field Values

    - #### CLASS_SIGNATURE

          public static final int CLASS_SIGNATURE

      Constant used in `appendDescriptor` for class signatures, formatted in bytecode notation
      See Also:
        Constant Field Values

    - #### TYPE_DECLARATION

          public static final int TYPE_DECLARATION

      Constant used in `appendDescriptor` for field or method return value signatures, formatted in default Java notation (non-bytecode)
      See Also:
        Constant Field Values

    - #### CLASS_DECLARATION

          public static final int CLASS_DECLARATION

      Constant used in `appendDescriptor` for class signatures, formatted in default Java notation (non-bytecode)
      See Also:
        Constant Field Values

    - #### PARAMETERS_DECLARATION

          public static final int PARAMETERS_DECLARATION

      Constant used in `appendDescriptor` for method parameter signatures, formatted in default Java notation (non-bytecode)
      See Also:
        Constant Field Values

    - #### HANDLE_DESCRIPTOR

          public static final int HANDLE_DESCRIPTOR

      Constant used in `appendDescriptor` for handle descriptors, formatted in bytecode notation
      See Also:
        Constant Field Values

    - #### tab

          protected String tab

      Tab for class members.

    - #### tab2

          protected String tab2

      Tab for bytecode instructions.

    - #### tab3

          protected String tab3

      Tab for table and lookup switch instructions.

    - #### ltab

          protected String ltab

      Tab for labels.

    - #### labelNames

          protected Map<Label,String> labelNames

      The label names. This map associate String values to Label keys.

  - ### Constructor Detail

    - #### Textifier

          public Textifier()

      Constructs a new `Textifier`. Subclasses must not use this constructor. Instead, they must use the `Textifier(int)` version.
      Throws:
        `IllegalStateException` - If a subclass calls this constructor.

    - #### Textifier

          protected Textifier(int api)

      Constructs a new `Textifier`.
      Parameters:
        `api` - the ASM API version implemented by this visitor. Must be one of `Opcodes.ASM4` or `Opcodes.ASM5`.

  - ### Method Detail

    - #### main

          public static void main(String[] args)
                           throws Exception

      Prints a disassembled view of the given class to the standard output.

      Usage: Textifier [-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`
      Class header. See `ClassVisitor.visit(int, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String[])`.
      Specified by:
        `visit` in class `Printer`

    - #### visitSource

          public void visitSource(String file,
                                  String debug)

      Description copied from class: `Printer`
      Class source. See `ClassVisitor.visitSource(java.lang.String, java.lang.String)`.
      Specified by:
        `visitSource` in class `Printer`

    - #### visitOuterClass

          public void visitOuterClass(String owner,
                                      String name,
                                      String desc)

      Description copied from class: `Printer`
      Class outer class. See `ClassVisitor.visitOuterClass(java.lang.String, java.lang.String, java.lang.String)`.
      Specified by:
        `visitOuterClass` in class `Printer`

    - #### visitClassAnnotation

          public Textifier visitClassAnnotation(String desc,
                                                boolean visible)

      Description copied from class: `Printer`
      Class annotation. See `ClassVisitor.visitAnnotation(java.lang.String, boolean)`.
      Specified by:
        `visitClassAnnotation` in class `Printer`

    - #### visitClassTypeAnnotation

          public Printer visitClassTypeAnnotation(int typeRef,
                                                  TypePath typePath,
                                                  String desc,
                                                  boolean visible)

      Description copied from class: `Printer`
      Class type annotation. See `ClassVisitor.visitTypeAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)`.
      Overrides:
        `visitClassTypeAnnotation` in class `Printer`

    - #### visitClassAttribute

          public void visitClassAttribute(Attribute attr)

      Description copied from class: `Printer`
      Class attribute. See `ClassVisitor.visitAttribute(org.objectweb.asm.Attribute)`.
      Specified by:
        `visitClassAttribute` in class `Printer`

    - #### visitInnerClass

          public void visitInnerClass(String name,
                                      String outerName,
                                      String innerName,
                                      int access)

      Description copied from class: `Printer`
      Class inner name. See `ClassVisitor.visitInnerClass(java.lang.String, java.lang.String, java.lang.String, int)`.
      Specified by:
        `visitInnerClass` in class `Printer`

    - #### visitField

          public Textifier visitField(int access,
                                      String name,
                                      String desc,
                                      String signature,
                                      Object value)

      Description copied from class: `Printer`
      Class field. See `ClassVisitor.visitField(int, java.lang.String, java.lang.String, java.lang.String, java.lang.Object)`.
      Specified by:
        `visitField` in class `Printer`

    - #### visitMethod

          public Textifier visitMethod(int access,
                                       String name,
                                       String desc,
                                       String signature,
                                       String[] exceptions)

      Description copied from class: `Printer`
      Class method. See `ClassVisitor.visitMethod(int, java.lang.String, java.lang.String, java.lang.String, java.lang.String[])`.
      Specified by:
        `visitMethod` in class `Printer`

    - #### visitClassEnd

          public void visitClassEnd()

      Description copied from class: `Printer`
      Class end. See `ClassVisitor.visitEnd()`.
      Specified by:
        `visitClassEnd` in class `Printer`

    - #### visit

          public void visit(String name,
                            Object value)

      Description copied from class: `Printer`
      Annotation value. See `AnnotationVisitor.visit(java.lang.String, java.lang.Object)`.
      Specified by:
        `visit` in class `Printer`

    - #### visitEnum

          public void visitEnum(String name,
                                String desc,
                                String value)

      Description copied from class: `Printer`
      Annotation enum value. See `AnnotationVisitor.visitEnum(java.lang.String, java.lang.String, java.lang.String)`.
      Specified by:
        `visitEnum` in class `Printer`

    - #### visitAnnotation

          public Textifier visitAnnotation(String name,
                                           String desc)

      Description copied from class: `Printer`
      Nested annotation value. See `AnnotationVisitor.visitAnnotation(java.lang.String, java.lang.String)`.
      Specified by:
        `visitAnnotation` in class `Printer`

    - #### visitArray

          public Textifier visitArray(String name)

      Description copied from class: `Printer`
      Annotation array value. See `AnnotationVisitor.visitArray(java.lang.String)`.
      Specified by:
        `visitArray` in class `Printer`

    - #### visitAnnotationEnd

          public void visitAnnotationEnd()

      Description copied from class: `Printer`
      Annotation end. See `AnnotationVisitor.visitEnd()`.
      Specified by:
        `visitAnnotationEnd` in class `Printer`

    - #### visitFieldAnnotation

          public Textifier visitFieldAnnotation(String desc,
                                                boolean visible)

      Description copied from class: `Printer`
      Field annotation. See `FieldVisitor.visitAnnotation(java.lang.String, boolean)`.
      Specified by:
        `visitFieldAnnotation` in class `Printer`

    - #### visitFieldTypeAnnotation

          public Printer visitFieldTypeAnnotation(int typeRef,
                                                  TypePath typePath,
                                                  String desc,
                                                  boolean visible)

      Description copied from class: `Printer`
      Field type annotation. See `FieldVisitor.visitTypeAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)`.
      Overrides:
        `visitFieldTypeAnnotation` in class `Printer`

    - #### visitFieldAttribute

          public void visitFieldAttribute(Attribute attr)

      Description copied from class: `Printer`
      Field attribute. See `FieldVisitor.visitAttribute(org.objectweb.asm.Attribute)`.
      Specified by:
        `visitFieldAttribute` in class `Printer`

    - #### visitFieldEnd

          public void visitFieldEnd()

      Description copied from class: `Printer`
      Field end. See `FieldVisitor.visitEnd()`.
      Specified by:
        `visitFieldEnd` in class `Printer`

    - #### visitParameter

          public void visitParameter(String name,
                                     int access)

      Description copied from class: `Printer`
      Method parameter. See `MethodVisitor.visitParameter(String, int)`.
      Overrides:
        `visitParameter` in class `Printer`

    - #### visitAnnotationDefault

          public Textifier visitAnnotationDefault()

      Description copied from class: `Printer`
      Method default annotation. See `MethodVisitor.visitAnnotationDefault()`.
      Specified by:
        `visitAnnotationDefault` in class `Printer`

    - #### visitMethodAnnotation

          public Textifier visitMethodAnnotation(String desc,
                                                 boolean visible)

      Description copied from class: `Printer`
      Method annotation. See `MethodVisitor.visitAnnotation(java.lang.String, boolean)`.
      Specified by:
        `visitMethodAnnotation` in class `Printer`

    - #### visitMethodTypeAnnotation

          public Printer visitMethodTypeAnnotation(int typeRef,
                                                   TypePath typePath,
                                                   String desc,
                                                   boolean visible)

      Description copied from class: `Printer`
      Method type annotation. See `MethodVisitor.visitTypeAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)`.
      Overrides:
        `visitMethodTypeAnnotation` in class `Printer`

    - #### visitParameterAnnotation

          public Textifier visitParameterAnnotation(int parameter,
                                                    String desc,
                                                    boolean visible)

      Description copied from class: `Printer`
      Method parameter annotation. See `MethodVisitor.visitParameterAnnotation(int, java.lang.String, boolean)`.
      Specified by:
        `visitParameterAnnotation` in class `Printer`

    - #### visitMethodAttribute

          public void visitMethodAttribute(Attribute attr)

      Description copied from class: `Printer`
      Method attribute. See `MethodVisitor.visitAttribute(org.objectweb.asm.Attribute)`.
      Specified by:
        `visitMethodAttribute` in class `Printer`

    - #### visitCode

          public void visitCode()

      Description copied from class: `Printer`
      Method start. See `MethodVisitor.visitCode()`.
      Specified by:
        `visitCode` in class `Printer`

    - #### visitFrame

          public void visitFrame(int type,
                                 int nLocal,
                                 Object[] local,
                                 int nStack,
                                 Object[] stack)

      Description copied from class: `Printer`
      Method stack frame. See `MethodVisitor.visitFrame(int, int, java.lang.Object[], int, java.lang.Object[])`.
      Specified by:
        `visitFrame` in class `Printer`

    - #### visitInsn

          public void visitInsn(int opcode)

      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitInsn(int)` .
      Specified by:
        `visitInsn` in class `Printer`

    - #### visitIntInsn

          public void visitIntInsn(int opcode,
                                   int operand)

      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitIntInsn(int, int)`.
      Specified by:
        `visitIntInsn` in class `Printer`

    - #### visitVarInsn

          public void visitVarInsn(int opcode,
                                   int var)

      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitVarInsn(int, int)`.
      Specified by:
        `visitVarInsn` in class `Printer`

    - #### visitTypeInsn

          public void visitTypeInsn(int opcode,
                                    String type)

      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitTypeInsn(int, java.lang.String)`.
      Specified by:
        `visitTypeInsn` in class `Printer`

    - #### visitFieldInsn

          public void visitFieldInsn(int opcode,
                                     String owner,
                                     String name,
                                     String desc)

      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitFieldInsn(int, java.lang.String, java.lang.String, java.lang.String)`.
      Specified by:
        `visitFieldInsn` in class `Printer`

    - #### visitMethodInsn

          @Deprecated
          public void visitMethodInsn(int opcode,
                                                   String owner,
                                                   String name,
                                                   String desc)

      Deprecated.
      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String)`.
      Overrides:
        `visitMethodInsn` in class `Printer`

    - #### visitMethodInsn

          public void visitMethodInsn(int opcode,
                                      String owner,
                                      String name,
                                      String desc,
                                      boolean itf)

      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String)`.
      Overrides:
        `visitMethodInsn` in class `Printer`

    - #### visitInvokeDynamicInsn

          public void visitInvokeDynamicInsn(String name,
                                             String desc,
                                             Handle bsm,
                                             Object... bsmArgs)

      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitInvokeDynamicInsn(java.lang.String, java.lang.String, org.objectweb.asm.Handle, java.lang.Object...)`.
      Specified by:
        `visitInvokeDynamicInsn` in class `Printer`

    - #### visitJumpInsn

          public void visitJumpInsn(int opcode,
                                    Label label)

      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitJumpInsn(int, org.objectweb.asm.Label)`.
      Specified by:
        `visitJumpInsn` in class `Printer`

    - #### visitLabel

          public void visitLabel(Label label)

      Description copied from class: `Printer`
      Method label. See `MethodVisitor.visitLabel(org.objectweb.asm.Label)`.
      Specified by:
        `visitLabel` in class `Printer`

    - #### visitLdcInsn

          public void visitLdcInsn(Object cst)

      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitLdcInsn(java.lang.Object)`.
      Specified by:
        `visitLdcInsn` in class `Printer`

    - #### visitIincInsn

          public void visitIincInsn(int var,
                                    int increment)

      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitIincInsn(int, int)`.
      Specified by:
        `visitIincInsn` in class `Printer`

    - #### visitTableSwitchInsn

          public void visitTableSwitchInsn(int min,
                                           int max,
                                           Label dflt,
                                           Label... labels)

      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitTableSwitchInsn(int, int, org.objectweb.asm.Label, org.objectweb.asm.Label...)`.
      Specified by:
        `visitTableSwitchInsn` in class `Printer`

    - #### visitLookupSwitchInsn

          public void visitLookupSwitchInsn(Label dflt,
                                            int[] keys,
                                            Label[] labels)

      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitLookupSwitchInsn(org.objectweb.asm.Label, int[], org.objectweb.asm.Label[])`.
      Specified by:
        `visitLookupSwitchInsn` in class `Printer`

    - #### visitMultiANewArrayInsn

          public void visitMultiANewArrayInsn(String desc,
                                              int dims)

      Description copied from class: `Printer`
      Method instruction. See `MethodVisitor.visitMultiANewArrayInsn(java.lang.String, int)`.
      Specified by:
        `visitMultiANewArrayInsn` in class `Printer`

    - #### visitInsnAnnotation

          public Printer visitInsnAnnotation(int typeRef,
                                             TypePath typePath,
                                             String desc,
                                             boolean visible)

      Description copied from class: `Printer`
      Instruction type annotation. See `MethodVisitor.visitInsnAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)`.
      Overrides:
        `visitInsnAnnotation` in class `Printer`

    - #### visitTryCatchBlock

          public void visitTryCatchBlock(Label start,
                                         Label end,
                                         Label handler,
                                         String type)

      Description copied from class: `Printer`
      Method exception handler. See `MethodVisitor.visitTryCatchBlock(org.objectweb.asm.Label, org.objectweb.asm.Label, org.objectweb.asm.Label, java.lang.String)`.
      Specified by:
        `visitTryCatchBlock` in class `Printer`

    - #### visitTryCatchAnnotation

          public Printer visitTryCatchAnnotation(int typeRef,
                                                 TypePath typePath,
                                                 String desc,
                                                 boolean visible)

      Description copied from class: `Printer`
      Try catch block type annotation. See `MethodVisitor.visitTryCatchAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)`.
      Overrides:
        `visitTryCatchAnnotation` in class `Printer`

    - #### visitLocalVariable

          public void visitLocalVariable(String name,
                                         String desc,
                                         String signature,
                                         Label start,
                                         Label end,
                                         int index)

      Description copied from class: `Printer`
      Method debug info. See `MethodVisitor.visitLocalVariable(java.lang.String, java.lang.String, java.lang.String, org.objectweb.asm.Label, org.objectweb.asm.Label, int)`.
      Specified by:
        `visitLocalVariable` in class `Printer`

    - #### 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. See `MethodVisitor.visitTryCatchAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean)`.
      Overrides:
        `visitLocalVariableAnnotation` in class `Printer`

    - #### visitLineNumber

          public void visitLineNumber(int line,
                                      Label start)

      Description copied from class: `Printer`
      Method debug info. See `MethodVisitor.visitLineNumber(int, org.objectweb.asm.Label)`.
      Specified by:
        `visitLineNumber` in class `Printer`

    - #### visitMaxs

          public void visitMaxs(int maxStack,
                                int maxLocals)

      Description copied from class: `Printer`
      Method max stack and max locals. See `MethodVisitor.visitMaxs(int, int)`.
      Specified by:
        `visitMaxs` in class `Printer`

    - #### visitMethodEnd

          public void visitMethodEnd()

      Description copied from class: `Printer`
      Method end. See `MethodVisitor.visitEnd()`.
      Specified by:
        `visitMethodEnd` in class `Printer`

    - #### visitAnnotation

          public Textifier visitAnnotation(String desc,
                                           boolean visible)

      Prints a disassembled view of the given annotation.
      Parameters:
        `desc` - the class descriptor of the annotation class.
        `visible` - `true` if the annotation is visible at runtime.
      Returns:
        a visitor to visit the annotation values.

    - #### visitTypeAnnotation

          public Textifier visitTypeAnnotation(int typeRef,
                                               TypePath typePath,
                                               String desc,
                                               boolean visible)

      Prints a disassembled view of the given type annotation.
      Parameters:
        `typeRef` - a reference to the annotated type. See `TypeReference`.
        `typePath` - the path to the annotated type argument, wildcard bound, array element type, or static inner type within 'typeRef'. May be `null` if the annotation targets 'typeRef' as a whole.
        `desc` - the class descriptor of the annotation class.
        `visible` - `true` if the annotation is visible at runtime.
      Returns:
        a visitor to visit the annotation values.

    - #### visitAttribute

          public void visitAttribute(Attribute attr)

      Prints a disassembled view of the given attribute.
      Parameters:
        `attr` - an attribute.

    - #### createTextifier

          protected Textifier createTextifier()

      Creates a new TraceVisitor instance.
      Returns:
        a new TraceVisitor.

    - #### appendDescriptor

          protected void appendDescriptor(int type,
                                          String desc)

      Appends an internal name, a type descriptor or a type signature to `buf`.
      Parameters:
        `type` - indicates if desc is an internal name, a field descriptor, a method descriptor, a class signature, ...
        `desc` - an internal name, type descriptor, or type signature. May be `null`.

    - #### appendLabel

          protected void appendLabel(Label l)

      Appends the name of the given label to `buf`. Creates a new label name if the given label does not yet have one.
      Parameters:
        `l` - a label.

    - #### appendHandle

          protected void appendHandle(Handle h)

      Appends the information about the given handle to `buf`.
      Parameters:
        `h` - a handle, non null.