final Object spotObject = inputs.getValue(ValueRequirementNames.SPOT_RATE);
if (spotObject == null) {
throw new OpenGammaRuntimeException("Could not get spot requirement");
}
final double spot = (Double) spotObject;
final CurrencyPair baseQuotePair = baseQuotePairs.getCurrencyPair(putCurrency, callCurrency);
if (baseQuotePair == null) {
throw new OpenGammaRuntimeException("Could not get base/quote pair for currency pair (" + putCurrency + ", " + callCurrency + ")");
}
YieldAndDiscountCurve[] curves;
final YieldAndDiscountCurve putFundingCurve = getCurveForCurrency(inputs, putCurrency);
final YieldAndDiscountCurve callFundingCurve = getCurveForCurrency(inputs, callCurrency);
final Map<String, Currency> curveCurrency = new HashMap<String, Currency>();
if (baseQuotePair.getBase().equals(putCurrency)) { // To get Base/quote in market standard order.
ccy1 = putCurrency;
ccy2 = callCurrency;
curves = new YieldAndDiscountCurve[] {putFundingCurve, callFundingCurve };
curveCurrency.put(allCurveNames[0], putCurrency);
curveCurrency.put(allCurveNames[1], callCurrency);