class CheckSignatureAdapter extends SignatureVisitor {

  @Override
  public SignatureVisitor visitClassBound() {
    if (type == TYPE_SIGNATURE || !VISIT_CLASS_BOUND_STATES.contains(state)) {
      throw new IllegalStateException();
    }
    state = State.BOUND;
    return new CheckSignatureAdapter(
        TYPE_SIGNATURE, signatureVisitor == null ? null : signatureVisitor.visitClassBound());
  }

  public  CheckSignatureAdapter(final int type, final SignatureVisitor signatureVisitor);
  protected  CheckSignatureAdapter(
      final int api, final int type, final SignatureVisitor signatureVisitor);

}