class FieldBuilder extends FieldVisitor {

  private TagBuilder tb;
  private final SootField field;
  private final SootClassBuilder scb;

  FieldBuilder(SootField field, SootClassBuilder scb) {
    super(Opcodes.ASM5);
    this.field = field;
    this.scb = scb;
  }

  private TagBuilder getTagBuilder() {<FILL_FUNCTION_BODY>}

  @Override
  public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
    return getTagBuilder().visitAnnotation(desc, visible);
  }

  @Override
  public void visitAttribute(Attribute attr) {
    getTagBuilder().visitAttribute(attr);
  }
}

    TagBuilder t = tb;
    if (t == null) {
      t = tb = new TagBuilder(field, scb);
    }
    return t;
  
<methods>public org.objectweb.asm.FieldVisitor getDelegate() ,public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String, boolean) ,public void visitAttribute(org.objectweb.asm.Attribute) ,public void visitEnd() ,public org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean) <variables>protected final int api,protected org.objectweb.asm.FieldVisitor fv