Class HolidayManager

java.lang.Object
de.focus_shift.jollyday.core.HolidayManager

public abstract class HolidayManager extends Object
Abstract base class for all holiday manager implementations. Upon call of getInstance method the implementing class will be read from the jollyday.properties file and instantiated.
  • Constructor Details

    • HolidayManager

      public HolidayManager()
  • Method Details

    • init

      public void init(@NonNull ManagerParameter parameters)
      Initializes the implementing manager for the provided calendar.
      Parameters:
      parameters - i.e. us, uk, de
    • doInit

      public abstract void doInit()
    • getInstance

      public static @NonNull HolidayManager getInstance()
      Creates a HolidayManager instance for the default locale country using the configured properties from the configuration file.
      Returns:
      an eventually cached HolidayManager instance
    • getInstance

      public static @NonNull HolidayManager getInstance(@NonNull Properties properties)
      Creates a HolidayManager instance for the default locale country using the provided properties.
      Parameters:
      properties - the overriding configuration properties.
      Returns:
      an eventually cached HolidayManager instance
    • getInstance

      public static @NonNull HolidayManager getInstance(@NonNull ManagerParameter parameter)
      Creates and returns a HolidayManager for the provided ManagerParameters
      Parameters:
      parameter - the ManagerParameters to create the manager with
      Returns:
      the HolidayManager instance
    • setManagerCachingEnabled

      public static void setManagerCachingEnabled(boolean managerCachingEnabled)
      If true, instantiated managers will be cached. If false every call to getInstance will create new manager. True by default.
      Parameters:
      managerCachingEnabled - the managerCachingEnabled to set
    • isManagerCachingEnabled

      public static boolean isManagerCachingEnabled()

      isManagerCachingEnabled.

      Returns:
      the CACHING_ENABLED
    • clearManagerCache

      public static void clearManagerCache()
      Clears the manager cache from all cached manager instances.
    • isHoliday

      public boolean isHoliday(@NonNull Calendar calendar, @NonNull String... args)
      Returns true or false if the requested calendar date is a holiday in the state or the optional given region and below
      Parameters:
      calendar - Calendar to check.
      args - Hierarchy to request the holidays for. i.e. args = {'ny'} -> New York holidays
      Returns:
      if the date is a holiday
    • isHoliday

      public boolean isHoliday(@NonNull Calendar calendar, @Nullable HolidayType holidayType, @NonNull String... args)
      Returns true or false if the requested calendar date is a holiday in the state or based on the given HolidayType and the optional given region and below
      Parameters:
      calendar - Calendar to check.
      holidayType - a HolidayType to be considered
      args - Hierarchy to request the holidays for. i.e. args = {'ny'} -> New York holidays
      Returns:
      if the date is a holiday
    • isHoliday

      public boolean isHoliday(@NonNull LocalDate localDate, @NonNull String... args)
      Returns true or false if the requested date is a holiday in the state or the optional given region and below
      Parameters:
      localDate - The potential holiday.
      args - Hierarchy to request the holidays for. i.e. args = {'ny'} -> New York holidays
      Returns:
      true if the given date is a holiday in the state/region and below, otherwise false
    • isHoliday

      public boolean isHoliday(@NonNull LocalDate localDate, @Nullable HolidayType holidayType, @NonNull String... args)
      Returns true or false if the requested date is a holiday in the state, based on the given HolidayType and the optional given region and below
      Parameters:
      localDate - The potential holiday.
      holidayType - a HolidayType to be considered
      args - Hierarchy to request the holidays for. i.e. args = {'ny'} -> New York holidays
      Returns:
      true if the given date is a holiday in the state/region and below, otherwise false
    • getSupportedCalendarCodes

      public static @NonNull Set<String> getSupportedCalendarCodes()
    • setConfigurationService

      public void setConfigurationService(@NonNull HolidayCalendarConfigurationService configurationService)
      Sets the configuration datasource with this holiday manager.
      Parameters:
      configurationService - the HolidayCalendarConfigurationService to use.
    • getConfigurationService

      public @NonNull HolidayCalendarConfigurationService getConfigurationService()
      Returns the HolidayCalendarConfigurationService to be used to retrieve holiday data.
      Returns:
      the HolidayCalendarConfigurationService to use.
    • getManagerParameter

      public @NonNull ManagerParameter getManagerParameter()
      Returns the ManagerParameter to be used
      Returns:
      the ManagerParameter to use.
    • getHolidays

      public abstract @NonNull Set<Holiday> getHolidays(@NonNull Year year, @NonNull String... args)
      Returns the holidays for the requested year and hierarchy structure.
      Parameters:
      year - i.e. 2010
      args - i.e. args = {'ny'}. returns US/New York holidays. No args means holidays common to whole country
      Returns:
      a set of holidays for the requested year
    • getHolidays

      public abstract @NonNull Set<Holiday> getHolidays(@NonNull Year year, @NonNull HolidayType holidayType, @NonNull String... args)
      Returns the holidays for the requested year, the given HolidayType and the hierarchy structure
      Parameters:
      year - i.e. 2010
      holidayType - a HolidayType to be considered
      args - i.e. args = {'ny'}. returns US/New York holidays. No args means holidays common to whole country
      Returns:
      a set of holidays of the given HolidayType for the requested year
    • getHolidays

      public abstract @NonNull Set<Holiday> getHolidays(@NonNull LocalDate startDateInclusive, @NonNull LocalDate endDateInclusive, @NonNull String... args)
      Returns the holidays for the requested interval and hierarchy structure.
      Parameters:
      startDateInclusive - the start date of the interval in which holidays lie, inclusive
      endDateInclusive - the end date of the interval in which holidays lie, inclusive
      args - i.e. args = {'ny'}. returns US/New York holidays. No args means holidays common to whole country
      Returns:
      set of holidays within the interval
    • getHolidays

      public abstract @NonNull Set<Holiday> getHolidays(@NonNull LocalDate startDateInclusive, @NonNull LocalDate endDateInclusive, @NonNull HolidayType holidayType, @NonNull String... args)
      Returns the holidays for the requested interval, the given HolidayType and hierarchy structure.
      Parameters:
      startDateInclusive - the start date of the interval in which holidays lie, inclusive
      endDateInclusive - the end date of the interval in which holidays lie, inclusive
      holidayType - a HolidayType to be considered
      args - i.e. args = {'ny'}. returns US/New York holidays. No args means holidays common to whole country
      Returns:
      set of holidays of the given HolidayType within the interval
    • getCalendarHierarchy

      public abstract @NonNull CalendarHierarchy getCalendarHierarchy()
      Returns the configured hierarchy structure for the specific manager. This hierarchy shows how the configured holidays are structured and can be retrieved.
      Returns:
      Current calendars hierarchy