Class Schedule

  • All Implemented Interfaces:
    java.lang.Comparable<Schedule>
    Direct Known Subclasses:
    CronExpression, Interval

    public abstract class Schedule
    extends java.lang.Object
    implements java.lang.Comparable<Schedule>
    • Constructor Summary

      Constructors 
      Constructor Description
      Schedule()  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      int compareTo​(Schedule schedule)
      Compare two Schedule objects based on next occurrence.
      boolean equals​(java.lang.Object obj)  
      int hashCode()  
      abstract java.time.Instant next​(java.time.Instant createdAtInstant, java.time.Instant currentInstant, java.time.ZoneId zoneId)
      Calculates the next occurrence based on the creation time and the provided base time.
      java.time.Instant next​(java.time.Instant createdAt, java.time.ZoneId zoneId)
      Calculates the next occurrence based on the creation time and the current time.
      abstract void validateSchedule()  
      • Methods inherited from class java.lang.Object

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

      • SMALLEST_SCHEDULE_IN_SECONDS

        public static final int SMALLEST_SCHEDULE_IN_SECONDS
        See Also:
        Constant Field Values
    • Constructor Detail

      • Schedule

        public Schedule()
    • Method Detail

      • next

        public java.time.Instant next​(java.time.Instant createdAt,
                                      java.time.ZoneId zoneId)
        Calculates the next occurrence based on the creation time and the current time.
        Parameters:
        createdAt - Instant object when the schedule was first created
        zoneId - the zone for which to calculate the schedule
        Returns:
        Instant of the next occurrence.
      • next

        @VisibleFor("testing")
        public abstract java.time.Instant next​(java.time.Instant createdAtInstant,
                                               java.time.Instant currentInstant,
                                               java.time.ZoneId zoneId)
        Calculates the next occurrence based on the creation time and the provided base time.
        Parameters:
        createdAtInstant - Instant object when the schedule was first created
        currentInstant - Instant object used to calculate next occurrence (normally Instant.now()).
        zoneId - the zone for which to calculate the schedule
        Returns:
        Instant of the next occurrence.
      • validateSchedule

        public abstract void validateSchedule()
      • compareTo

        public int compareTo​(Schedule schedule)
        Compare two Schedule objects based on next occurrence.

        The next occurrences are calculated based on the current time.

        Specified by:
        compareTo in interface java.lang.Comparable<Schedule>
        Parameters:
        schedule - the Schedule to be compared.
        Returns:
        the value 0 if this Schedule next occurrence is equal to the argument Schedule next occurrence; a value less than 0 if this Schedule next occurrence is before the argument Schedule next occurrence; and a value greater than 0 if this Schedule next occurrence is after the argument Schedule next occurrence.
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object