iborRateBuilder.dayCount(document.parseDayCountFraction(calcEl.getChild("dayCountFraction"))); iborRateBuilder.index((IborIndex) document.parseIndex(floatingEl)); iborRateBuilder.gearing(parseSchedule(el, document)); }); iborRateBuilder.spread(parseSchedule(el, document)); }); iborRateBuilder.firstRegularRate(document.parseDecimal(el)); }); iborRateBuilder.negativeRateMethod(parseNegativeInterestRateTreatment(el)); }); document.validateNotPresent(resetDatesEl, "rateCutOffDaysOffset"); resetDatesEl.findChild("resetRelativeTo").ifPresent(el -> { iborRateBuilder.fixingRelativeTo(parseResetRelativeTo(el)); }); iborRateBuilder.fixingDateOffset(document.parseRelativeDateOffsetDays(resetDatesEl.getChild("fixingDates"))); Frequency resetFreq = document.parseFrequency(resetDatesEl.getChild("resetFrequency")); if (!accrualSchedule.getFrequency().equals(resetFreq)) { resetScheduleBuilder.businessDayAdjustment( document.parseBusinessDayAdjustments(resetDatesEl.getChild("resetDatesAdjustments"))); iborRateBuilder.resetPeriods(resetScheduleBuilder.build());
.build()) .calculation(IborRateCalculation.builder() .dayCount(ACT_365F) .index(GBP_LIBOR_1M) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, GBLO)) .build()) .build();
.build()) .calculation(IborRateCalculation.builder() .index(INDEX) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, SAT_SUN, BDA_P)) .build()) .build(); Swap swap1 = Swap.of(fixedLeg10, SWAP.getLeg(PAY).get());
.build()) .calculation(IborRateCalculation.builder() .index(INDEX) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, SAT_SUN, BDA_P)) .build()) .build(); Swap swap1 = Swap.of(fixedLeg10, SWAP.getLeg(PAY).get());
.notionalSchedule(notional) .calculation(IborRateCalculation.builder() .index(EUR_LIBOR_6M) .dayCount(ACT_360) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, SAT_SUN)) .initialStub(IborRateStubCalculation.ofIborInterpolatedRate(EUR_LIBOR_3M, EUR_LIBOR_6M)) .build()) .build(); RateCalculationSwapLeg recLeg = RateCalculationSwapLeg.builder()
.notionalSchedule(notional) .calculation(IborRateCalculation.builder() .index(EUR_LIBOR_6M) .dayCount(ACT_360) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, GBLO)) .build()) .build(); RateCalculationSwapLeg recLeg = RateCalculationSwapLeg.builder()
.notionalSchedule(notional) .calculation(IborRateCalculation.builder() .index(USD_LIBOR_3M) .dayCount(ACT_360) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, GBLO)) .build()) .build(); RateCalculationSwapLeg payLeg = RateCalculationSwapLeg.builder()
.notionalSchedule(notionalFloat) .calculation(IborRateCalculation.builder() .index(EUR_LIBOR_6M) .dayCount(ACT_360) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, GBLO)) .initialStub(IborRateStubCalculation.ofIborInterpolatedRate(EUR_LIBOR_3M, EUR_LIBOR_6M)) .build()) .build(); RateCalculationSwapLeg recLeg = RateCalculationSwapLeg.builder()
.notionalSchedule(notional) .calculation(IborRateCalculation.builder() .index(EUR_LIBOR_6M) .dayCount(ACT_360) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, GBLO)) .initialStub(IborRateStubCalculation.ofIborInterpolatedRate(EUR_LIBOR_3M, EUR_LIBOR_6M)) .build()) .build(); RateCalculationSwapLeg recLeg = RateCalculationSwapLeg.builder()
.notionalSchedule(notional) .calculation(IborRateCalculation.builder() .index(USD_LIBOR_6M) .resetPeriods(ResetSchedule.builder() .resetFrequency(Frequency.P1M) .resetMethod(IborRateResetMethod.UNWEIGHTED) .businessDayAdjustment(BusinessDayAdjustment.of(MODIFIED_FOLLOWING, GBLO)) .build()) .dayCount(ACT_360) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, GBLO)) .build()) .build(); assertEqualsBean((Bean) swap.getLegs().get(0), payLeg);
.notionalSchedule(notional) .calculation(IborRateCalculation.builder() .dayCount(ACT_360) .index(EUR_EURIBOR_6M) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, EUTA)) .spread(ValueSchedule.of(0.001)) .initialStub(IborRateStubCalculation.ofFixedRate(0.05125)) .finalStub(IborRateStubCalculation.ofIborRate(EUR_EURIBOR_3M)) .build()) .build(); RateCalculationSwapLeg recLeg = RateCalculationSwapLeg.builder()
.build()) .calculation(IborRateCalculation.builder() .index(EUR_EURIBOR_3M) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, CalendarUSD.NYC, BDA_P)) .spread(ValueSchedule.of(0.0020)) .build()) .build(); .build()) .calculation(IborRateCalculation.builder() .index(USD_LIBOR_3M) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, CalendarUSD.NYC, BDA_P)) .build()) .build();
.build()) .calculation(IborRateCalculation.builder() .index(INDEX) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, SAT_SUN, BDA_P)) .build()) .build(); Swap swap1 = Swap.of(fixedLeg10, SWAP.getLeg(PAY).get());
.notionalSchedule(notional) .calculation(IborRateCalculation.builder() .index(GBP_LIBOR_6M) .dayCount(ACT_360) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, GBLO)) .build()) .build(); assertEqualsBean((Bean) swap.getLegs().get(0), payLeg);
.notionalSchedule(notional) .calculation(IborRateCalculation.builder() .index(USD_LIBOR_3M) .dayCount(ACT_360) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, GBLO)) .build()) .build(); RateCalculationSwapLeg payLeg = RateCalculationSwapLeg.builder()
builder.index(iborIndex); BusinessDayAdjustment resetDateAdj = parseBusinessDayAdjustment(row, leg, RESET_DATE_CNV_FIELD, RESET_DATE_CAL_FIELD).orElse(bda); resetFrequencyOpt.ifPresent(freq -> builder.resetPeriods(ResetSchedule.builder() .resetFrequency(freq) .resetMethod(resetMethod) .ifPresent(v -> builder.dayCount(v)); findValue(row, leg, FIXING_RELATIVE_TO_FIELD) .map(s -> FixingRelativeTo.of(s)) .ifPresent(v -> builder.fixingRelativeTo(v)); Optional<DaysAdjustment> fixingAdjOpt = parseDaysAdjustment( row, FIXING_OFFSET_ADJ_CNV_FIELD, FIXING_OFFSET_ADJ_CAL_FIELD); fixingAdjOpt.ifPresent(v -> builder.fixingDateOffset(v)); findValue(row, leg, NEGATIVE_RATE_METHOD_FIELD).map(s -> NegativeRateMethod.of(s)) .ifPresent(v -> builder.negativeRateMethod(v)); findValue(row, leg, FIRST_RATE_FIELD) .map(s -> LoaderUtils.parseDoublePercent(s)) .ifPresent(v -> builder.firstRate(v)); findValue(row, leg, GEARING_FIELD) .map(s -> LoaderUtils.parseDouble(s)) .ifPresent(v -> builder.gearing(ValueSchedule.of(v))); findValue(row, leg, SPREAD_FIELD) .map(s -> LoaderUtils.parseDoublePercent(s)) .ifPresent(v -> builder.spread(ValueSchedule.of(v)));
.build()) .calculation(IborRateCalculation.builder() .index(EUR_EURIBOR_3M) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, CalendarUSD.NYC, BDA_P)) .spread(ValueSchedule.of(0.0020)) .build()) .build(); .build()) .calculation(IborRateCalculation.builder() .index(USD_LIBOR_3M) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, CalendarUSD.NYC, BDA_P)) .build()) .build();
.notionalSchedule(notional) .calculation(IborRateCalculation.builder() .index(EUR_LIBOR_6M) .dayCount(ACT_360) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, GBLO)) .build()) .build(); RateCalculationSwapLeg recLeg = RateCalculationSwapLeg.builder()
.notionalSchedule(NOTIONAL) .calculation(IborRateCalculation.builder() .index(USD_LIBOR_1M) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, CalendarUSD.NYC, BDA_P)) .build()) .build(); .notionalSchedule(NOTIONAL) .calculation(IborRateCalculation.builder() .index(USD_LIBOR_3M) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, CalendarUSD.NYC, BDA_P)) .build()) .build();
.notionalSchedule(notional) .calculation(IborRateCalculation.builder() .index(USD_LIBOR_3M) .dayCount(ACT_360) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, GBLO)) .gearing(ValueSchedule.of(-1)) .spread(ValueSchedule.of(0.0325)) .build()) .build(); RateCalculationSwapLeg recLeg = RateCalculationSwapLeg.builder() .notionalSchedule(notional) .calculation(IborRateCalculation.builder() .index(USD_LIBOR_6M) .dayCount(THIRTY_360_ISDA) .fixingDateOffset(DaysAdjustment.ofBusinessDays(-2, USNY)) .build()) .build(); assertEqualsBean((Bean) swap.getLegs().get(0), payLeg);