/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.equity.future.definition;
import org.threeten.bp.ZonedDateTime;
import com.opengamma.analytics.financial.equity.future.derivative.EquityIndexDividendFuture;
import com.opengamma.analytics.financial.instrument.InstrumentDefinitionVisitor;
import com.opengamma.analytics.util.time.TimeCalculator;
import com.opengamma.util.ArgumentChecker;
import com.opengamma.util.money.Currency;
/**
* Each time a view is recalculated, the security definition
* creates an analytic derivative for the current time.
*/
public class EquityIndexDividendFutureDefinition extends EquityFutureDefinition {
/**
* @param expiryDate The expiry date
* @param settlementDate The settlement date
* @param strikePrice The strike price
* @param currency The currency
* @param unitValue The unit value
*/
public EquityIndexDividendFutureDefinition(final ZonedDateTime expiryDate, final ZonedDateTime settlementDate, final double strikePrice, final Currency currency, final double unitValue) {
super(expiryDate, settlementDate, strikePrice, currency, unitValue);
}
@Override
public <U, V> V accept(final InstrumentDefinitionVisitor<U, V> visitor, final U data) {
ArgumentChecker.notNull(visitor, "visitor");
return visitor.visitEquityIndexDividendFutureDefinition(this, data);
}
@Override
public <V> V accept(final InstrumentDefinitionVisitor<?, V> visitor) {
ArgumentChecker.notNull(visitor, "visitor");
return visitor.visitEquityIndexDividendFutureDefinition(this);
}
}