private static Optional<DaysAdjustment> parseDaysAdjustment( CsvRow row, String leg, String daysField, String daysCalField, String cnvField, String calField) { Optional<Integer> daysOpt = findValue(row, leg, daysField) .map(s -> Integer.valueOf(s)); HolidayCalendarId cal = findValue(row, leg, daysCalField) .map(s -> HolidayCalendarId.of(s)) .orElse(HolidayCalendarIds.NO_HOLIDAYS); BusinessDayAdjustment bda = parseBusinessDayAdjustment(row, leg, cnvField, calField) .orElse(BusinessDayAdjustment.NONE); if (!daysOpt.isPresent()) { return Optional.empty(); } return Optional.of(DaysAdjustment.builder() .days(daysOpt.get()) .calendar(cal) .adjustment(bda) .build()); }
builder.frequency(Frequency.parse(getValue(row, leg, FREQUENCY_FIELD))); BusinessDayAdjustment dateAdj = parseBusinessDayAdjustment(row, leg, DATE_ADJ_CNV_FIELD, DATE_ADJ_CAL_FIELD) .orElse(BusinessDayAdjustment.NONE); Optional<BusinessDayAdjustment> startDateAdj = parseBusinessDayAdjustment(row, leg, START_DATE_CNV_FIELD, START_DATE_CAL_FIELD); Optional<BusinessDayAdjustment> endDateAdj = parseBusinessDayAdjustment(row, leg, END_DATE_CNV_FIELD, END_DATE_CAL_FIELD); builder.businessDayAdjustment(dateAdj); if (startDateAdj.isPresent() && !startDateAdj.get().equals(dateAdj)) {
.orElse(IborRateResetMethod.WEIGHTED); BusinessDayAdjustment resetDateAdj = parseBusinessDayAdjustment(row, leg, RESET_DATE_CNV_FIELD, RESET_DATE_CAL_FIELD).orElse(bda); resetFrequencyOpt.ifPresent(freq -> builder.resetPeriods(ResetSchedule.builder() .resetFrequency(freq)