Package org.apache.hc.core5.util
Class Deadline
java.lang.Object
org.apache.hc.core5.util.Deadline
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
FieldsModifier and TypeFieldDescriptionstatic final String
The format used for parsing and formatting dates.private static final DateTimeFormatter
private boolean
private static final long
A special internal value that marks a deadline as the longest possible.private static final long
A special internal value that marks a deadline as the shortest possible.private long
static Deadline
The maximum (longest-lived) deadline.static Deadline
The minimum (shortest-lived) deadline.private final long
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
Deadline
(long deadlineMillis) Constructs a new instance with the given UNIX time in milliseconds. -
Method Summary
Modifier and TypeMethodDescriptionstatic Deadline
Calculates a deadline with a given time in milliseconds plus a given time value.static Deadline
Calculates a deadline from now plus a given time value.boolean
Formats this deadline.Formats the deadline value as a string in the format "yyyy-MM-dd\'T\'HH:mm:ss.SSSZ".freeze()
static Deadline
fromUnixMilliseconds
(long value) Creates a deadline from a UNIX time in milliseconds.(package private) long
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
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
Returns whether this deadline has not expired.Returns the smaller of this and anotherDeadline
.static Deadline
Creates a deadline from a string in the format "yyyy-MM-dd\'T\'HH:mm:ss.SSSZ".long
Returns the difference in milliseconds between the deadline and now.Returns the difference as a TimeValue between the deadline and now.private void
toString()
-
Field Details
-
DATE_FORMAT
The format used for parsing and formatting dates.- See Also:
-
INTERNAL_MAX_VALUE
private static final long INTERNAL_MAX_VALUEA special internal value that marks a deadline as the longest possible.- See Also:
-
INTERNAL_MIN_VALUE
private static final long INTERNAL_MIN_VALUEA special internal value that marks a deadline as the shortest possible.- See Also:
-
MAX_VALUE
The maximum (longest-lived) deadline. -
MIN_VALUE
The minimum (shortest-lived) deadline. -
DATE_TIME_FORMATTER
-
frozen
private volatile boolean frozen -
lastCheck
private volatile long lastCheck -
value
private final long value
-
-
Constructor Details
-
Deadline
private Deadline(long deadlineMillis) Constructs a new instance with the given UNIX time in milliseconds.- Parameters:
deadlineMillis
- UNIX time in milliseconds.
-
-
Method Details
-
calculate
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
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
Creates a deadline from a UNIX time in milliseconds.- Parameters:
value
- a UNIX time in milliseconds.- Returns:
- a new deadline.
-
parse
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:
ParseException
- if the specified source string cannot be parsed.
-
equals
-
hashCode
public int hashCode() -
format
Formats this deadline.- Parameters:
overdueTimeUnit
- the time unit to show how much over the deadline we are.- Returns:
- a formatted 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
-
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
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
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
-