class InstructionAdapter extends MethodVisitor {

  @Override
  public void visitFieldInsn(
      final int opcode, final String owner, final String name, final String descriptor) {
    switch (opcode) {
      case Opcodes.GETSTATIC:
        getstatic(owner, name, descriptor);
        break;
      case Opcodes.PUTSTATIC:
        putstatic(owner, name, descriptor);
        break;
      case Opcodes.GETFIELD:
        getfield(owner, name, descriptor);
        break;
      case Opcodes.PUTFIELD:
        putfield(owner, name, descriptor);
        break;
      default:
        throw new IllegalArgumentException();
    }
  }

  public  InstructionAdapter(final MethodVisitor methodVisitor);
  protected  InstructionAdapter(final int api, final MethodVisitor methodVisitor);

}