final InterestRateNotional notional = new InterestRateNotional(spec.getCurrency(), 1);
final ExternalId payRegionIdentifier = payConvention.getRegion();
final DayCount payDayCount = payConvention.getDayCount();
final Frequency payFrequency = PeriodFrequency.of(fixedIncomeStrip.getPayTenor().getPeriod());
final BusinessDayConvention payBusinessDayConvention = payConvention.getBusinessDayConvention();
final FloatingRateType payFloatingRateType = getFloatingTypeFromIndexType(fixedIncomeStrip.getPayIndexType());
final ExternalId receiveRegionIdentifier = receiveConvention.getRegion();
final DayCount receiveDayCount = receiveConvention.getDayCount();
final Frequency receiveFrequency = PeriodFrequency.of(fixedIncomeStrip.getReceiveTenor().getPeriod());
final BusinessDayConvention receiveBusinessDayConvention = receiveConvention.getBusinessDayConvention();
final FloatingRateType receiveFloatingRateType = getFloatingTypeFromIndexType(fixedIncomeStrip.getReceiveIndexType());
final double spread = marketValues.getDataPoint(swapIdentifier);
// Implementation note: By convention the spread is on the first leg (shorter tenor)
final FloatingSpreadIRLeg payLeg = new FloatingSpreadIRLeg(payDayCount, payFrequency, payRegionIdentifier, payBusinessDayConvention, notional, false, payFloatingReferenceRateId,
payFloatingRateType, spread);
final FloatingInterestRateLeg receiveLeg = new FloatingInterestRateLeg(receiveDayCount, receiveFrequency, receiveRegionIdentifier, receiveBusinessDayConvention, notional, false,