class InstructionAdapter extends MethodVisitor {

  @Override
  public void visitJumpInsn(final int opcode, final Label label) {
    switch (opcode) {
      case Opcodes.IFEQ:
        ifeq(label);
        break;
      case Opcodes.IFNE:
        ifne(label);
        break;
      case Opcodes.IFLT:
        iflt(label);
        break;
      case Opcodes.IFGE:
        ifge(label);
        break;
      case Opcodes.IFGT:
        ifgt(label);
        break;
      case Opcodes.IFLE:
        ifle(label);
        break;
      case Opcodes.IF_ICMPEQ:
        ificmpeq(label);
        break;
      case Opcodes.IF_ICMPNE:
        ificmpne(label);
        break;
      case Opcodes.IF_ICMPLT:
        ificmplt(label);
        break;
      case Opcodes.IF_ICMPGE:
        ificmpge(label);
        break;
      case Opcodes.IF_ICMPGT:
        ificmpgt(label);
        break;
      case Opcodes.IF_ICMPLE:
        ificmple(label);
        break;
      case Opcodes.IF_ACMPEQ:
        ifacmpeq(label);
        break;
      case Opcodes.IF_ACMPNE:
        ifacmpne(label);
        break;
      case Opcodes.GOTO:
        goTo(label);
        break;
      case Opcodes.JSR:
        jsr(label);
        break;
      case Opcodes.IFNULL:
        ifnull(label);
        break;
      case Opcodes.IFNONNULL:
        ifnonnull(label);
        break;
      default:
        throw new IllegalArgumentException();
    }
  }

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

}