Package org.apache.hc.core5.util
Class Deadline
- java.lang.Object
-
- org.apache.hc.core5.util.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.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Deadline
calculate(long timeMillis, TimeValue timeValue)
Calculates a deadline with a given time in milliseconds plus a given time value.static Deadline
calculate(TimeValue timeValue)
Calculates a deadline from now plus a given time value.boolean
equals(java.lang.Object obj)
java.lang.String
format(java.util.concurrent.TimeUnit overdueTimeUnit)
Formats this deadline.java.lang.String
formatTarget()
Formats the deadline value as a string in the format "yyyy-MM-dd\'T\'HH:mm:ss.SSSZ".Deadline
freeze()
static Deadline
fromUnixMilliseconds(long value)
Creates a deadline from a UNIX time in milliseconds.(package private) long
getLastCheck()
Package private for testing.long
getValue()
Gets the UNIX time deadline value.int
hashCode()
boolean
isBefore(long millis)
Returns whether this deadline occurs before the given time in milliseconds.boolean
isExpired()
Returns whether the deadline has expired.boolean
isMax()
Returns whether this deadline is the maximum deadline.boolean
isMin()
Returns whether this deadline is the minimum deadline.boolean
isNotExpired()
Returns whether this deadline has not expired.Deadline
min(Deadline other)
Returns the smaller of this and anotherDeadline
.static Deadline
parse(java.lang.String source)
Creates a deadline from a string in the format "yyyy-MM-dd\'T\'HH:mm:ss.SSSZ".long
remaining()
Returns the difference in milliseconds between the deadline and now.TimeValue
remainingTimeValue()
Returns the difference as a TimeValue between the deadline and now.private void
setLastCheck()
java.lang.String
toString()
-
-
-
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
-
-
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 totimeMillis
.- 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 totimeMillis
.- 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.
-
parse
public static Deadline parse(java.lang.String source) throws java.text.ParseException
Creates a deadline from a string in the format "yyyy-MM-dd\'T\'HH:mm:ss.SSSZ".- Parameters:
source
- a string in the format "yyyy-MM-dd\'T\'HH:mm:ss.SSSZ".- Returns:
- a deadline from a string in the format "yyyy-MM-dd\'T\'HH:mm:ss.SSSZ".
- Throws:
java.text.ParseException
- if the specified source string cannot be parsed.
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.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.
-
formatTarget
public java.lang.String formatTarget()
Formats the deadline value as a string in the format "yyyy-MM-dd\'T\'HH:mm:ss.SSSZ".- Returns:
- a formatted string in the format "yyyy-MM-dd\'T\'HH:mm:ss.SSSZ".
-
freeze
public Deadline freeze()
-
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 anotherDeadline
.- Parameters:
other
- another deadline.- Returns:
- the smaller of
this
andother
.
-
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 classjava.lang.Object
-
-