Class ClassVisitor

java.lang.Object
mockit.asm.BaseWriter
mockit.asm.classes.ClassVisitor
Direct Known Subclasses:
ClassWriter, WrappingClassVisitor

public class ClassVisitor extends BaseWriter
A visitor to visit a Java class, in the following order:
visit (visitAnnotation)* (visitInnerClass | visitField | visitMethod)* visitEnd.
  • Constructor Details

    • ClassVisitor

      protected ClassVisitor()
  • Method Details

    • visit

      public void visit(int version, int access, @NonNull String name, @NonNull ClassInfo additionalInfo)
      Visits the header of the class.
      Parameters:
      version - the class version
      access - the class's access flags (see Access)
      name - the internal name of the class
      additionalInfo - additional class information
    • visitInnerClass

      public void visitInnerClass(@NonNull String name, @Nullable String outerName, @Nullable String innerName, int access)
      Visits information about an inner class, which is not necessarily a member of the class being visited.
      Parameters:
      name - the internal name of an inner class
      outerName - the internal name of the class to which the inner class belongs; null for not member classes
      innerName - the (simple) name of the inner class inside its enclosing class; null for anonymous inner classes
      access - the access flags of the inner class as originally declared in the enclosing class
    • visitField

      @Nullable public FieldVisitor visitField(int access, @NonNull String name, @NonNull String desc, @Nullable String signature, @Nullable Object value)
      Visits a field of the class.
      Parameters:
      access - the field's access flags (see Access)
      name - the field's name
      desc - the field's descriptor (see JavaType)
      signature - the field's signature; null when the field's type does not use generic types
      value - the field's initial value; null when the field does not have an initial value; otherwise, must be an Integer, a Float, a Long, a Double or a String (for int, float, long or String fields respectively); this parameter is only used for static fields; its value is ignored for non static fields, which must be initialized through bytecode instructions in constructors or methods
      Returns:
      a visitor to visit field annotations and attributes, or null if this class visitor is not interested in visiting these annotations and attributes
    • visitMethod

      @Nullable public MethodVisitor visitMethod(int access, @NonNull String name, @NonNull String desc, @Nullable String signature, @Nullable String[] exceptions)
      Visits a method of the class. This method must return a new MethodVisitor instance (or null) each time it is called, i.e., it should not return a previously returned visitor.
      Parameters:
      access - the method's access flags (see Opcodes)
      name - the method's name
      desc - the method's descriptor (see JavaType)
      signature - the method's signature, null if the method parameters, return type and exceptions do not use generic types
      exceptions - the internal names of the method's exception classes
      Returns:
      an object to visit the byte code of the method, or null if this class visitor is not interested in visiting the code of this method
    • toByteArray

      public byte[] toByteArray()
      Returns the bytecode of the class that was built with this class visitor.