@Override
public Map<String, List<DoublesPair>> visitCapFloorCMSSpread(final CapFloorCMSSpread payment, final YieldCurveBundle curves) {
Validate.notNull(curves);
Validate.notNull(payment);
if (curves instanceof SABRInterestRateDataBundle) {
final SABRInterestRateDataBundle sabrBundle = (SABRInterestRateDataBundle) curves;
if (sabrBundle.getSABRParameter() instanceof SABRInterestRateCorrelationParameters) {
final SABRInterestRateCorrelationParameters sabrCorrelation = (SABRInterestRateCorrelationParameters) sabrBundle.getSABRParameter();
final CapFloorCMSSpreadSABRBinormalMethod method = new CapFloorCMSSpreadSABRBinormalMethod(sabrCorrelation.getCorrelation(), CapFloorCMSSABRReplicationMethod.getDefaultInstance(),
CouponCMSSABRReplicationMethod.getInstance());
return method.presentValueCurveSensitivity(payment, sabrBundle).getSensitivities();
}
}