/** * Gets the start date of the schedule. * <p> * The first date in the schedule, typically treated as inclusive. * If the schedule adjusts for business days, then this is the adjusted date. * * @return the schedule start date */ @Override public LocalDate getStartDate() { return getFirstPeriod().getStartDate(); }
LocalDate selectBaseDate(SchedulePeriod period) { return (this == PERIOD_END ? period.getEndDate() : period.getStartDate()); }
LocalDate selectBaseDate(SchedulePeriod period) { return (this == PERIOD_END ? period.getEndDate() : period.getStartDate()); }
LocalDate selectBaseDate(SchedulePeriod period) { return (this == PERIOD_END ? period.getEndDate() : period.getStartDate()); }
private SchedulePeriod createSchedulePeriod(List<SchedulePeriod> accruals) { SchedulePeriod first = accruals.get(0); if (accruals.size() == 1) { return first; } SchedulePeriod last = accruals.get(accruals.size() - 1); return SchedulePeriod.of( first.getStartDate(), last.getEndDate(), first.getUnadjustedStartDate(), last.getUnadjustedEndDate()); }
/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(SchedulePeriod beanToCopy) { this.startDate = beanToCopy.getStartDate(); this.endDate = beanToCopy.getEndDate(); this.unadjustedStartDate = beanToCopy.getUnadjustedStartDate(); this.unadjustedEndDate = beanToCopy.getUnadjustedEndDate(); }
private RateComputation createRateComputation(SchedulePeriod period, Schedule paymentSchedule, ReferenceData refData) { int effectiveRateCutOffDaysOffset = (isLastAccrualInPaymentPeriod(period, paymentSchedule) ? rateCutOffDays : 0); return OvernightRateComputation.of( index, period.getStartDate(), period.getEndDate(), effectiveRateCutOffDaysOffset, accrualMethod, refData); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case -2129778896: // startDate return ((SchedulePeriod) bean).getStartDate(); case -1607727319: // endDate return ((SchedulePeriod) bean).getEndDate(); case 1457691881: // unadjustedStartDate return ((SchedulePeriod) bean).getUnadjustedStartDate(); case 31758114: // unadjustedEndDate return ((SchedulePeriod) bean).getUnadjustedEndDate(); } return super.propertyGet(bean, propertyName, quiet); }
public void test_of_all() { SchedulePeriod test = SchedulePeriod.of(JUL_05, JUL_18, JUL_04, JUL_17); assertEquals(test.getStartDate(), JUL_05); assertEquals(test.getEndDate(), JUL_18); assertEquals(test.getUnadjustedStartDate(), JUL_04); assertEquals(test.getUnadjustedEndDate(), JUL_17); }
public void test_of_noUnadjusted() { SchedulePeriod test = SchedulePeriod.of(JUL_05, JUL_18); assertEquals(test.getStartDate(), JUL_05); assertEquals(test.getEndDate(), JUL_18); assertEquals(test.getUnadjustedStartDate(), JUL_05); assertEquals(test.getUnadjustedEndDate(), JUL_18); }
public void test_getPeriodEndDate() { // schedule doesn't make sense, but test only requires roll convention of EOM Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertEquals(test.getPeriodEndDate(P2_NORMAL.getStartDate()), P2_NORMAL.getEndDate()); assertEquals(test.getPeriodEndDate(P2_NORMAL.getStartDate().plusDays(1)), P2_NORMAL.getEndDate()); assertEquals(test.getPeriodEndDate(P3_NORMAL.getStartDate()), P3_NORMAL.getEndDate()); assertEquals(test.getPeriodEndDate(P3_NORMAL.getStartDate().plusDays(1)), P3_NORMAL.getEndDate()); assertThrowsIllegalArg(() -> test.getPeriodEndDate(P2_NORMAL.getStartDate().minusDays(1))); }
public void test_builder_defaults() { SchedulePeriod test = SchedulePeriod.builder() .startDate(JUL_05) .endDate(JUL_18) .build(); assertEquals(test.getStartDate(), JUL_05); assertEquals(test.getEndDate(), JUL_18); assertEquals(test.getUnadjustedStartDate(), JUL_05); assertEquals(test.getUnadjustedEndDate(), JUL_18); }
public void test_merge_termNoChange() { Schedule test = Schedule.ofTerm(P1_STUB); assertEquals(test.mergeRegular(2, true), test); assertEquals(test.mergeRegular(2, false), test); assertEquals(test.merge(2, P1_STUB.getUnadjustedStartDate(), P1_STUB.getUnadjustedEndDate()), test); assertEquals(test.merge(2, P1_STUB.getStartDate(), P1_STUB.getEndDate()), test); }
public void test_merge_groupSizeOneNoChange() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL, P5_NORMAL, P6_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(1, true), test); assertEquals(test.mergeRegular(1, false), test); assertEquals(test.merge(1, P2_NORMAL.getUnadjustedStartDate(), P6_NORMAL.getUnadjustedEndDate()), test); assertEquals(test.merge(1, P2_NORMAL.getStartDate(), P6_NORMAL.getEndDate()), test); }
public void test_merge_size1_stub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P1_STUB)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(2, true), test); assertEquals(test.mergeRegular(2, false), test); assertEquals(test.merge(2, P1_STUB.getUnadjustedStartDate(), P1_STUB.getUnadjustedEndDate()), test); assertEquals(test.merge(2, P1_STUB.getStartDate(), P1_STUB.getEndDate()), test); }
public void test_merge_group2_within3_forwards() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P2_3, P4_NORMAL)) .frequency(P2M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(2, true), expected); assertEquals(test.merge(2, P2_NORMAL.getUnadjustedStartDate(), P3_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(2, P2_NORMAL.getStartDate(), P3_NORMAL.getEndDate()), expected); }
public void test_merge_group2_within5_forwards() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL, P5_NORMAL, P6_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P2_3, P4_5, P6_NORMAL)) .frequency(P2M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(2, true), expected); assertEquals(test.merge(2, P2_NORMAL.getUnadjustedStartDate(), P5_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(2, P2_NORMAL.getStartDate(), P5_NORMAL.getEndDate()), expected); }
public void test_merge_group2_within5_backwards() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL, P5_NORMAL, P6_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_4, P5_6)) .frequency(P2M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(2, false), expected); assertEquals(test.merge(2, P3_NORMAL.getUnadjustedStartDate(), P6_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(2, P3_NORMAL.getStartDate(), P6_NORMAL.getEndDate()), expected); }
public void test_merge_group2_within6_includeInitialStub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P1_STUB, P2_NORMAL, P3_NORMAL, P4_NORMAL, P5_NORMAL, P6_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P1_2, P3_4, P5_6)) .frequency(P2M) .rollConvention(DAY_17) .build(); assertEquals(test.merge(2, P3_NORMAL.getUnadjustedStartDate(), P6_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(2, P3_NORMAL.getStartDate(), P6_NORMAL.getEndDate()), expected); }
public void test_merge_group2_within6_includeFinalStub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P1_STUB, P2_NORMAL, P3_NORMAL, P4_STUB)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P1_2, P3_4STUB)) .frequency(P2M) .rollConvention(DAY_17) .build(); assertEquals(test.merge(2, P1_STUB.getUnadjustedStartDate(), P2_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(2, P1_STUB.getStartDate(), P2_NORMAL.getEndDate()), expected); }