Class Duration

java.lang.Object
javax.cache.expiry.Duration
All Implemented Interfaces:
Serializable

public class Duration extends Object implements Serializable
A Serializable duration of time.

Although this class is not declared final, it is not intended for extension. The behavior is undefined when subclasses are created and used.

Since:
1.0
See Also:
  • Field Details

    • serialVersionUID

      public static final long serialVersionUID
      The serialVersionUID required for Serializable.
      See Also:
    • ETERNAL

      public static final Duration ETERNAL
      ETERNAL (forever).
    • ONE_DAY

      public static final Duration ONE_DAY
      One day.
    • ONE_HOUR

      public static final Duration ONE_HOUR
      One hour.
    • THIRTY_MINUTES

      public static final Duration THIRTY_MINUTES
      Thirty minutes.
    • TWENTY_MINUTES

      public static final Duration TWENTY_MINUTES
      Twenty minutes.
    • TEN_MINUTES

      public static final Duration TEN_MINUTES
      Ten minutes.
    • FIVE_MINUTES

      public static final Duration FIVE_MINUTES
      Five minutes.
    • ONE_MINUTE

      public static final Duration ONE_MINUTE
      One minute.
    • ZERO

      public static final Duration ZERO
      Zero (no time).
    • timeUnit

      private final TimeUnit timeUnit
      The unit of time to specify time in. The minimum time unit is milliseconds.
    • durationAmount

      private final long durationAmount
      How long, in the specified units, the cache entries should live. The lifetime is measured from the cache entry was last accessed or mutated.
  • Constructor Details

    • Duration

      public Duration()
      Constructs an eternal duration (isEternal() is true). Since the duration is immutable the constant ETERNAL should be used alternatively.
    • Duration

      public Duration(TimeUnit timeUnit, long durationAmount)
      Constructs a duration. The eternal duration (isEternal() is true) is represented by specifying null for timeUnit and 0 for durationAmount.
      Parameters:
      timeUnit - the unit of time to specify time in. The minimum time unit is milliseconds.
      durationAmount - how long, in the specified units, the cache entries should live.
      Throws:
      NullPointerException - if timeUnit is null and the durationAmount is not 0
      IllegalArgumentException - if durationAmount is less than 0 or a TimeUnit less than milliseconds is specified
    • Duration

      public Duration(long startTime, long endTime)
      Constructs a Duration based on the duration between two specified points in time (since the Epoc), measured in milliseconds.

      If either parameter is Long.MAX_VALUE an eternal duration (isEternal() is true) will be constructed.

      Parameters:
      startTime - the start time (since the Epoc)
      endTime - the end time (since the Epoc)
  • Method Details

    • getTimeUnit

      public TimeUnit getTimeUnit()
      Obtain the TimeUnit for the Duration
      Returns:
      the TimeUnit
    • getDurationAmount

      public long getDurationAmount()
      Obtain the number of TimeUnits in the Duration
      Returns:
      the number of TimeUnits
    • isEternal

      public boolean isEternal()
      Determines if a Duration is eternal (forever).
      Returns:
      true if the Duration is eternal
    • isZero

      public boolean isZero()
      Determines if a Duration is zero.
      Returns:
      true if the Duration is zero
    • getAdjustedTime

      public long getAdjustedTime(long time)
      Calculates the adjusted time (represented in milliseconds from the Epoc) given a specified time in milliseconds (to be adjusted) by the duration.

      If this instance represents an eternal duration (isEternal() is true), the value Long.MAX_VALUE is returned.

      Parameters:
      time - the time from which to adjust given the duration
      Returns:
      the adjusted time
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object