author Eric Bruneton
  import { Opcodes } from "./Opcodes" ; import { TypePath } from "./TypePath" ; import { AnnotationVisitor } from "./AnnotationVisitor" ; import { Attribute } from "./Attribute" ; export abstract class FieldVisitor { /**
     * The ASM API version implemented by this visitor. The value of this field
     * must be one of  Opcodes or  Opcodes .
      api : number ; /**
     * The field visitor to which this visitor must delegate method calls. May
     * be null.
     */ fv : FieldVisitor | null ; /**
     * Constructs a new  FieldVisitor .
     *
     *  param api the ASM API version implemented by this visitor. Must be one
     * of  Opcodes or  Opcodes .
     *  param fv public constructor ( api , fv = null ) { this . api = 0 ; if ( api !== Opcodes . ASM4 && api !== Opcodes . ASM5 ) { throw new Error ( ) ; } this . api = api ; this . fv = fv ; } param desc param visible return public visitAnnotation ( desc , visible ) { if ( this . fv != null ) { return this . fv . visitAnnotation ( desc , visible ) ; } return null ; } param typeRef a reference to the annotated type. The sort of this type
     * reference must be  TypeReference . See
     *  TypeReference .
     *  param typePath param desc param visible return public visitTypeAnnotation ( typeRef , typePath , desc , visible ) { if ( this . api < Opcodes . ASM5 ) { throw new Error ( ) ; } if ( this . fv != null ) { return this . fv . visitTypeAnnotation ( typeRef , typePath , desc , visible ) ; } return null ; } param attr public visitAttribute ( attr ) { if ( this . fv != null ) { this . fv . visitAttribute ( attr ) ; } } /**
     * 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.
     */ public visitEnd ( ) { if ( this . fv != null ) { this . fv . visitEnd ( ) ; } } }