/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.commodity.multicurvecommodity.derivative; import com.opengamma.analytics.financial.commodity.multicurvecommodity.underlying.CommodityUnderlying; import com.opengamma.analytics.financial.interestrate.InstrumentDerivativeVisitor; import com.opengamma.financial.convention.calendar.Calendar; import com.opengamma.util.ArgumentChecker; /** * Class describing a cash settle commodity coupon. */ public class CouponCommodityCashSettle extends CouponCommodity { /** * Constructor with all details. * @param paymentYearFraction The payment year fraction, positive * @param underlying The commodity underlying, not null * @param unitName name of the unit of the commodity delivered, not null * @param notional notional The number of unit * @param settlementTime The settlement time, , positive * @param calendar The holiday calendar, not null */ public CouponCommodityCashSettle(final double paymentYearFraction, final CommodityUnderlying underlying, final String unitName, final double notional, final double settlementTime, final Calendar calendar) { super(paymentYearFraction, underlying, unitName, notional, settlementTime, calendar); } @Override public <S, T> T accept(final InstrumentDerivativeVisitor<S, T> visitor, final S data) { ArgumentChecker.notNull(visitor, "visitor"); return visitor.visitCouponCommodityCashSettle(this, data); } @Override public <T> T accept(final InstrumentDerivativeVisitor<?, T> visitor) { ArgumentChecker.notNull(visitor, "visitor"); return visitor.visitCouponCommodityCashSettle(this); } @Override public double getReferenceAmount() { return getNotional(); } }