Class RollingCalendar

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<java.util.Calendar>

    public class RollingCalendar
    extends java.util.GregorianCalendar
    RollingCalendar is a helper class to TimeBasedRollingPolicy or similar timed-based rolling policies. Given a periodicity type and the current time, it computes the start of the next interval (i.e. the triggering date).
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.util.Calendar

        java.util.Calendar.Builder
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) java.lang.String datePattern  
      (package private) static java.util.TimeZone GMT_TIMEZONE  
      (package private) PeriodicityType periodicityType  
      private static long serialVersionUID  
      • Fields inherited from class java.util.GregorianCalendar

        AD, BC
      • Fields inherited from class java.util.Calendar

        ALL_STYLES, AM, AM_PM, APRIL, areFieldsSet, AUGUST, DATE, DAY_OF_MONTH, DAY_OF_WEEK, DAY_OF_WEEK_IN_MONTH, DAY_OF_YEAR, DECEMBER, DST_OFFSET, ERA, FEBRUARY, FIELD_COUNT, fields, FRIDAY, HOUR, HOUR_OF_DAY, isSet, isTimeSet, JANUARY, JULY, JUNE, LONG, LONG_FORMAT, LONG_STANDALONE, MARCH, MAY, MILLISECOND, MINUTE, MONDAY, MONTH, NARROW_FORMAT, NARROW_STANDALONE, NOVEMBER, OCTOBER, PM, SATURDAY, SECOND, SEPTEMBER, SHORT, SHORT_FORMAT, SHORT_STANDALONE, SUNDAY, THURSDAY, time, TUESDAY, UNDECIMBER, WEDNESDAY, WEEK_OF_MONTH, WEEK_OF_YEAR, YEAR, ZONE_OFFSET
    • Constructor Summary

      Constructors 
      Constructor Description
      RollingCalendar​(java.lang.String datePattern)  
      RollingCalendar​(java.lang.String datePattern, java.util.TimeZone tz, java.util.Locale locale)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private boolean collision​(long delta)  
      PeriodicityType computePeriodicityType()  
      static int diffInMonths​(long startTime, long endTime)  
      java.util.Date getEndOfNextNthPeriod​(java.util.Date now, int periods)  
      java.util.Date getNextTriggeringDate​(java.util.Date now)  
      PeriodicityType getPeriodicityType()  
      long getStartOfCurrentPeriodWithGMTOffsetCorrection​(long now, java.util.TimeZone timezone)  
      private static java.util.Date innerGetEndOfNextNthPeriod​(java.util.Calendar cal, PeriodicityType periodicityType, java.util.Date now, int numPeriods)  
      private static java.util.Date innerGetEndOfThisPeriod​(java.util.Calendar cal, PeriodicityType periodicityType, java.util.Date now)  
      boolean isCollisionFree()  
      long periodBarriersCrossed​(long start, long end)  
      void printPeriodicity​(ContextAwareBase cab)  
      • Methods inherited from class java.util.GregorianCalendar

        add, clone, computeFields, computeTime, equals, from, getActualMaximum, getActualMinimum, getCalendarType, getGreatestMinimum, getGregorianChange, getLeastMaximum, getMaximum, getMinimum, getTimeZone, getWeeksInWeekYear, getWeekYear, hashCode, isLeapYear, isWeekDateSupported, roll, roll, setGregorianChange, setTimeZone, setWeekDate, toZonedDateTime
      • Methods inherited from class java.util.Calendar

        after, before, clear, clear, compareTo, complete, get, getAvailableCalendarTypes, getAvailableLocales, getDisplayName, getDisplayNames, getFirstDayOfWeek, getInstance, getInstance, getInstance, getInstance, getMinimalDaysInFirstWeek, getTime, getTimeInMillis, internalGet, isLenient, isSet, set, set, set, set, setFirstDayOfWeek, setLenient, setMinimalDaysInFirstWeek, setTime, setTimeInMillis, toInstant, toString
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • GMT_TIMEZONE

        static final java.util.TimeZone GMT_TIMEZONE
      • datePattern

        java.lang.String datePattern
    • Constructor Detail

      • RollingCalendar

        public RollingCalendar​(java.lang.String datePattern)
      • RollingCalendar

        public RollingCalendar​(java.lang.String datePattern,
                               java.util.TimeZone tz,
                               java.util.Locale locale)
    • Method Detail

      • isCollisionFree

        public boolean isCollisionFree()
      • collision

        private boolean collision​(long delta)
      • periodBarriersCrossed

        public long periodBarriersCrossed​(long start,
                                          long end)
      • diffInMonths

        public static int diffInMonths​(long startTime,
                                       long endTime)
      • innerGetEndOfThisPeriod

        private static java.util.Date innerGetEndOfThisPeriod​(java.util.Calendar cal,
                                                              PeriodicityType periodicityType,
                                                              java.util.Date now)
      • innerGetEndOfNextNthPeriod

        private static java.util.Date innerGetEndOfNextNthPeriod​(java.util.Calendar cal,
                                                                 PeriodicityType periodicityType,
                                                                 java.util.Date now,
                                                                 int numPeriods)
      • getEndOfNextNthPeriod

        public java.util.Date getEndOfNextNthPeriod​(java.util.Date now,
                                                    int periods)
      • getNextTriggeringDate

        public java.util.Date getNextTriggeringDate​(java.util.Date now)
      • getStartOfCurrentPeriodWithGMTOffsetCorrection

        public long getStartOfCurrentPeriodWithGMTOffsetCorrection​(long now,
                                                                   java.util.TimeZone timezone)