private HolidayCalendar effectiveDateCalendar(ReferenceData refData) { HolidayCalendarId cal = effectiveDateOffset.getResultCalendar(); if (cal == HolidayCalendarIds.NO_HOLIDAYS) { cal = fixingCalendar; } return cal.resolve(refData); }
public void test_combinedWith() { HolidayCalendarId gb = HolidayCalendarId.of("GB"); HolidayCalendarId eu = HolidayCalendarId.of("EU"); HolidayCalendarId us = HolidayCalendarId.of("US"); HolidayCalendarId combined1 = eu.combinedWith(us).combinedWith(gb); HolidayCalendarId combined2 = us.combinedWith(eu).combinedWith(gb.combinedWith(us)); assertEquals(combined1.getName(), "EU+GB+US"); assertEquals(combined1.toString(), "EU+GB+US"); assertEquals(combined2.getName(), "EU+GB+US"); assertEquals(combined2.toString(), "EU+GB+US"); assertEquals(combined1.equals(combined2), true); }
public void test_equalsHashCode() { HolidayCalendarId a = HolidayCalendarId.of("GB"); HolidayCalendarId a2 = HolidayCalendarId.of("GB"); HolidayCalendarId b = HolidayCalendarId.of("EU"); assertEquals(a.hashCode(), a2.hashCode()); assertEquals(a.equals(a), true); assertEquals(a.equals(a2), true); assertEquals(a.equals(b), false); assertEquals(a.equals(null), false); assertEquals(a.equals(ANOTHER_TYPE), false); }
public void test_of_combined_NoHolidays() { HolidayCalendarId test = HolidayCalendarId.of("GB+NoHolidays+EU"); assertEquals(test.getName(), "EU+GB"); assertEquals(test.getReferenceDataType(), HolidayCalendar.class); assertEquals(test.toString(), "EU+GB"); }
public void test_resolve_combined_indirect() { HolidayCalendarId gb = HolidayCalendarId.of("GB"); HolidayCalendar gbCal = HolidayCalendars.SAT_SUN; HolidayCalendarId eu = HolidayCalendarId.of("EU"); HolidayCalendar euCal = HolidayCalendars.FRI_SAT; HolidayCalendarId combined = gb.combinedWith(eu); HolidayCalendar combinedCal = euCal.combinedWith(gbCal); ReferenceData refData = ImmutableReferenceData.of(ImmutableMap.of(gb, gbCal, eu, euCal)); assertEquals(combined.resolve(refData), combinedCal); assertEquals(refData.getValue(combined), combinedCal); }
/** * Converts an FpML business center string to a {@code HolidayCalendar}. * * @param fpmlBusinessCenter the business center name used by FpML * @return the holiday calendar * @throws IllegalArgumentException if the holiday calendar is not known */ public HolidayCalendarId convertHolidayCalendar(String fpmlBusinessCenter) { return HolidayCalendarId.of(fpmlBusinessCenter); }
@Override public HolidayCalendarId getId() { return calendar1.getId().combinedWith(calendar2.getId()); }
public void test_resolve_single() { HolidayCalendarId gb = HolidayCalendarId.of("GB"); HolidayCalendarId eu = HolidayCalendarId.of("EU"); HolidayCalendar gbCal = HolidayCalendars.SAT_SUN; ReferenceData refData = ImmutableReferenceData.of(gb, gbCal); assertEquals(gb.resolve(refData), gbCal); assertThrows(() -> eu.resolve(refData), ReferenceDataNotFoundException.class); assertEquals(refData.getValue(gb), gbCal); }
public void test_combinedWithSelf() { HolidayCalendarId gb = HolidayCalendarId.of("GB"); assertEquals(gb.combinedWith(gb), gb); assertEquals(gb.combinedWith(NO_HOLIDAYS), gb); assertEquals(NO_HOLIDAYS.combinedWith(gb), gb); assertEquals(NO_HOLIDAYS.combinedWith(NO_HOLIDAYS), NO_HOLIDAYS); }
private static HolidayCalendarId create(String name) { if (!name.contains("+")) { return CACHE.computeIfAbsent(name, n -> new HolidayCalendarId(name)); .filter(n -> !n.equals(HolidayCalendarIds.NO_HOLIDAYS.getName())) .map(n -> HolidayCalendarId.of(n)) .distinct() .sorted(comparing(HolidayCalendarId::getName)) }; HolidayCalendarId id = CACHE.computeIfAbsent(normalizedName, n -> new HolidayCalendarId(normalizedName, resolver)); CACHE.putIfAbsent(name, id); return id;
@ImmutablePreBuild private static void preBuild(Builder builder) { if (builder.fixingDateOffset == null && builder.fixingCalendar != null && builder.maturityDateOffset != null) { int days = builder.maturityDateOffset.getDays(); HolidayCalendarId maturityCal = builder.maturityDateOffset.getCalendar(); if (maturityCal.combinedWith(builder.fixingCalendar).equals(maturityCal)) { builder.fixingDateOffset = DaysAdjustment.ofBusinessDays(-days, maturityCal); } else { builder.fixingDateOffset = DaysAdjustment.ofBusinessDays( -days, maturityCal, BusinessDayAdjustment.of(BusinessDayConventions.PRECEDING, builder.fixingCalendar)); } } }
public void test_combined() { ImmutableHolidayCalendar base1 = ImmutableHolidayCalendar.of(TEST_ID, ImmutableList.of(MON_2014_07_14), SATURDAY, SUNDAY); ImmutableHolidayCalendar base2 = ImmutableHolidayCalendar.of(TEST_ID2, ImmutableList.of(WED_2014_07_16), FRIDAY, SATURDAY); ImmutableHolidayCalendar test = ImmutableHolidayCalendar.combined(base1, base2); assertEquals(test.getId(), base1.getId().combinedWith(base2.getId())); assertEquals(test.getName(), base1.getId().combinedWith(base2.getId()).getName()); assertEquals(test.getHolidays(), ImmutableList.of(MON_2014_07_14, WED_2014_07_16)); assertEquals(test.getWeekendDays(), ImmutableSet.of(FRIDAY, SATURDAY, SUNDAY)); }
@Override public String toString() { return "HolidayCalendar[" + id.getName() + ']'; }
public void test_defaultByCurrency() { assertEquals(HolidayCalendarId.defaultByCurrency(Currency.GBP), HolidayCalendarIds.GBLO); assertEquals(HolidayCalendarId.defaultByCurrency(Currency.CZK), HolidayCalendarIds.CZPR); assertEquals(HolidayCalendarId.defaultByCurrency(Currency.HKD), HolidayCalendarId.of("HKHK")); assertThrowsIllegalArg(() -> HolidayCalendarId.defaultByCurrency(Currency.XAG)); }
@Override public boolean equals(Object obj) { if (obj == this) { return true; } if (obj instanceof ImmutableHolidayCalendar) { return id.equals(((ImmutableHolidayCalendar) obj).id); } return false; }
@Override public int hashCode() { return id.hashCode(); }
public void test_resolve_combined_direct() { HolidayCalendarId gb = HolidayCalendarId.of("GB"); HolidayCalendar gbCal = HolidayCalendars.SAT_SUN; HolidayCalendarId eu = HolidayCalendarId.of("EU"); HolidayCalendar euCal = HolidayCalendars.FRI_SAT; HolidayCalendarId combined = gb.combinedWith(eu); HolidayCalendar combinedCal = euCal.combinedWith(gbCal); ReferenceData refData = ImmutableReferenceData.of(ImmutableMap.of(combined, combinedCal)); assertEquals(combined.resolve(refData), combinedCal); assertEquals(refData.getValue(combined), combinedCal); }
private Object readResolve() { return of(name); }
public void test_of_single() { HolidayCalendarId test = HolidayCalendarId.of("GB"); assertEquals(test.getName(), "GB"); assertEquals(test.getReferenceDataType(), HolidayCalendar.class); assertEquals(test.toString(), "GB"); }
return ArgChecker.notNull(cal1, "cal1"); HolidayCalendarId newId = cal1.id.combinedWith(cal2.id);