class ImmutableHolidayCalendar implements HolidayCalendar, ImmutableBean, Serializable {

  @Override
  public LocalDate previous(LocalDate date) {
    try {
      // day-of-month: minus one to start from previous day
      return shiftPrev(date.getYear(), date.getMonthValue(), date.getDayOfMonth() - 1, -1);

    } catch (ArrayIndexOutOfBoundsException ex) {
      return previousOutOfRange(date);
    }
  }

    ImmutableHolidayCalendar(HolidayCalendarId id, int weekendDays, int startYear, int[] lookup, boolean flag);
  private  ImmutableHolidayCalendar(
      HolidayCalendarId id,
      int weekends,
      int startYear,
      int[] lookup);

}