@Override
protected Set<ComputedValue> getResult(final InstrumentDerivative irFutureOptionTransaction, final YieldCurveWithBlackCubeBundle data, final ValueSpecification spec, Set<ValueRequirement> desiredValues) {
Double gamma = null;
if (irFutureOptionTransaction instanceof InterestRateFutureOptionMarginTransaction) {
final InterestRateFutureOptionMarginSecurity irFutureOptionSecurity = ((InterestRateFutureOptionMarginTransaction) irFutureOptionTransaction).getUnderlyingOption();
gamma = irFutureOptionSecurity.accept(CALCULATOR, data);
} else {
s_logger.error("Unexpected security type! {}", irFutureOptionTransaction.getClass());
}
return Collections.singleton(new ComputedValue(spec, gamma));
}