Class Deadline


  • public class Deadline
    extends java.lang.Object
    A deadline based on a UNIX time, the elapsed since 00:00:00 Coordinated Universal Time (UTC), Thursday, 1 January 1970.
    Since:
    5.0
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String DATE_FORMAT
      The format used for parsing and formatting dates.
      private static java.time.format.DateTimeFormatter DATE_TIME_FORMATTER  
      private boolean frozen  
      private static long INTERNAL_MAX_VALUE
      A special internal value that marks a deadline as the longest possible.
      private static long INTERNAL_MIN_VALUE
      A special internal value that marks a deadline as the shortest possible.
      private long lastCheck  
      static Deadline MAX_VALUE
      The maximum (longest-lived) deadline.
      static Deadline MIN_VALUE
      The minimum (shortest-lived) deadline.
      private long value  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private Deadline​(long deadlineMillis)
      Constructs a new instance with the given UNIX time in milliseconds.
    • Field Detail

      • DATE_FORMAT

        public static final java.lang.String DATE_FORMAT
        The format used for parsing and formatting dates.
        See Also:
        Constant Field Values
      • INTERNAL_MAX_VALUE

        private static final long INTERNAL_MAX_VALUE
        A special internal value that marks a deadline as the longest possible.
        See Also:
        Constant Field Values
      • INTERNAL_MIN_VALUE

        private static final long INTERNAL_MIN_VALUE
        A special internal value that marks a deadline as the shortest possible.
        See Also:
        Constant Field Values
      • MAX_VALUE

        public static Deadline MAX_VALUE
        The maximum (longest-lived) deadline.
      • MIN_VALUE

        public static Deadline MIN_VALUE
        The minimum (shortest-lived) deadline.
      • DATE_TIME_FORMATTER

        private static final java.time.format.DateTimeFormatter DATE_TIME_FORMATTER
      • frozen

        private volatile boolean frozen
      • lastCheck

        private volatile long lastCheck
      • value

        private final long value
    • Constructor Detail

      • Deadline

        private Deadline​(long deadlineMillis)
        Constructs a new instance with the given UNIX time in milliseconds.
        Parameters:
        deadlineMillis - UNIX time in milliseconds.
    • Method Detail

      • calculate

        public static Deadline calculate​(long timeMillis,
                                         TimeValue timeValue)
        Calculates a deadline with a given time in milliseconds plus a given time value. Non-positive time values represent an indefinite timeout without a deadline.
        Parameters:
        timeMillis - A time in UNIX milliseconds, usually the current time.
        timeValue - time value to add to timeMillis.
        Returns:
        a deadline representing the current time plus the given time value.
      • calculate

        public static Deadline calculate​(TimeValue timeValue)
        Calculates a deadline from now plus a given time value. Non-positive time values represent an indefinite timeout without a deadline.
        Parameters:
        timeValue - time value to add to timeMillis.
        Returns:
        a deadline representing the current time plus the given time value.
      • fromUnixMilliseconds

        public static Deadline fromUnixMilliseconds​(long value)
        Creates a deadline from a UNIX time in milliseconds.
        Parameters:
        value - a UNIX time in milliseconds.
        Returns:
        a new deadline.
      • 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
      • format

        public java.lang.String format​(java.util.concurrent.TimeUnit overdueTimeUnit)
        Formats this deadline.
        Parameters:
        overdueTimeUnit - the time unit to show how much over the deadline we are.
        Returns:
        a formatted string.
      • getLastCheck

        long getLastCheck()
        Package private for testing.
        Returns:
        the last time we checked the current time.
      • getValue

        public long getValue()
        Gets the UNIX time deadline value.
        Returns:
        the UNIX time deadline value.
      • isBefore

        public boolean isBefore​(long millis)
        Returns whether this deadline occurs before the given time in milliseconds.
        Parameters:
        millis - the time to compare.
        Returns:
        whether this deadline occurs before the given time in milliseconds.
      • isExpired

        public boolean isExpired()
        Returns whether the deadline has expired.
        Returns:
        whether the deadline has expired.
      • isMax

        public boolean isMax()
        Returns whether this deadline is the maximum deadline.
        Returns:
        whether this deadline is the maximum deadline.
      • isMin

        public boolean isMin()
        Returns whether this deadline is the minimum deadline.
        Returns:
        whether this deadline is the minimum deadline.
      • isNotExpired

        public boolean isNotExpired()
        Returns whether this deadline has not expired.
        Returns:
        whether this deadline has not expired.
      • min

        public Deadline min​(Deadline other)
        Returns the smaller of this and another Deadline.
        Parameters:
        other - another deadline.
        Returns:
        the smaller of this and other.
      • remaining

        public long remaining()
        Returns the difference in milliseconds between the deadline and now.
        Returns:
        the different in milliseconds between the deadline and now.
      • remainingTimeValue

        public TimeValue remainingTimeValue()
        Returns the difference as a TimeValue between the deadline and now.
        Returns:
        Returns the different as a TimeValue between the deadline and now.
      • setLastCheck

        private void setLastCheck()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object