org.objectweb.asm

## Class FieldVisitor

- java.lang.Object
- - org.objectweb.asm.FieldVisitor

- Direct Known Subclasses:
    CheckFieldAdapter, FieldNode, RemappingFieldAdapter, SAXFieldAdapter, TraceFieldVisitor

      public abstract class FieldVisitor
      extends Object

  A visitor to visit a Java field. The methods of this class must be called in the following order: ( `visitAnnotation` | `visitTypeAnnotation` | `visitAttribute` )* `visitEnd`.
  Author:
    Eric Bruneton

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `api` The ASM API version implemented by this visitor.
    `protected FieldVisitor` | `fv` The field visitor to which this visitor must delegate method calls.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FieldVisitor(int api)` Constructs a new `FieldVisitor`.
    `FieldVisitor(int api, FieldVisitor fv)` Constructs a new `FieldVisitor`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `AnnotationVisitor` | `visitAnnotation(String desc, boolean visible)` Visits an annotation of the field.
    `void` | `visitAttribute(Attribute attr)` Visits a non standard attribute of the field.
    `void` | `visitEnd()` Visits the end of the field.
    `AnnotationVisitor` | `visitTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)` Visits an annotation on the type of the field.

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

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

- - ### Field Detail

    - #### api

          protected final int api

      The ASM API version implemented by this visitor. The value of this field must be one of `Opcodes.ASM4` or `Opcodes.ASM5`.

    - #### fv

          protected FieldVisitor fv

      The field visitor to which this visitor must delegate method calls. May be null.

  - ### Constructor Detail

    - #### FieldVisitor

          public FieldVisitor(int api)

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

    - #### FieldVisitor

          public FieldVisitor(int api,
                              FieldVisitor fv)

      Constructs a new `FieldVisitor`.
      Parameters:
        `api` - the ASM API version implemented by this visitor. Must be one of `Opcodes.ASM4` or `Opcodes.ASM5`.
        `fv` - the field visitor to which this visitor must delegate method calls. May be null.

  - ### Method Detail

    - #### visitAnnotation

          public AnnotationVisitor visitAnnotation(String desc,
                                                   boolean visible)

      Visits an annotation of the field.
      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, or `null` if this visitor is not interested in visiting this annotation.

    - #### visitTypeAnnotation

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

      Visits an annotation on the type of the field.
      Parameters:
        `typeRef` - a reference to the annotated type. The sort of this type reference must be `FIELD`. 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, or `null` if this visitor is not interested in visiting this annotation.

    - #### visitAttribute

          public void visitAttribute(Attribute attr)

      Visits a non standard attribute of the field.
      Parameters:
        `attr` - an attribute.

    - #### visitEnd

          public void visitEnd()

      Visits the end of the field. This method, which is the last one to be called, is used to inform the visitor that all the annotations and attributes of the field have been visited.