class CapFloorCMS extends CouponFloating implements CapFloor {

  @Override
  @SuppressWarnings("deprecation")
  public Coupon withNotional(final double notional) {
    try {
      return new CapFloorCMS(getCurrency(), getPaymentTime(), getFundingCurveName(), getPaymentYearFraction(),
          notional, getFixingTime(), _underlyingSwap, _settlementTime, _strike, _isCap);
    } catch (final IllegalStateException e) {
      return new CapFloorCMS(getCurrency(), getPaymentTime(), getPaymentYearFraction(),
          notional, getFixingTime(), _underlyingSwap, _settlementTime, _strike, _isCap);
    }
  }

  @Deprecated public  CapFloorCMS(final Currency currency, final double paymentTime, final String fundingCurveName, final double paymentYearFraction, final double notional,
      final double fixingTime, final SwapFixedCoupon<? extends Payment> underlyingSwap, final double settlementTime,
      final double strike, final boolean isCap);
  public  CapFloorCMS(final Currency currency, final double paymentTime, final double paymentYearFraction, final double notional,
      final double fixingTime, final SwapFixedCoupon<? extends Payment> underlyingSwap, final double settlementTime,
      final double strike, final boolean isCap);

}