strike = option.getStrike();
timeToExpiry = option.getTimeToExpiry();
isCall = option.isCall();
optionPrice = derivative.accept(s_pvCalculator, market) / option.getUnitAmount();
} else if (derivative instanceof EquityIndexFutureOption) {
final EquityIndexFutureOption option = (EquityIndexFutureOption) derivative;
strike = option.getStrike();
timeToExpiry = option.getExpiry();
isCall = option.isCall();
optionPrice = derivative.accept(s_pvCalculator, market) / option.getPointValue();
} else {
throw new OpenGammaRuntimeException("Unexpected InstrumentDerivative type");
}
final double spot = market.getForwardCurve().getSpot();
final double discountRate = market.getDiscountCurve().getInterestRate(timeToExpiry);