public class Deadline extends Object
Modifier and Type | Field and Description |
---|---|
static String |
DATE_FORMAT
The format used for parsing and formatting dates.
|
static Deadline |
MAX_VALUE
The maximum (longest-lived) deadline.
|
static Deadline |
MIN_VALUE
The minimum (shortest-lived) deadline.
|
Modifier and Type | Method and 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(Object obj)
Indicates whether some other object is "equal to" this one.
|
String |
format(TimeUnit overdueTimeUnit)
Formats this deadline.
|
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.
|
long |
getValue()
Gets the UNIX time deadline value.
|
int |
hashCode()
Returns a hash code value for the object.
|
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 another
Deadline . |
static Deadline |
parse(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.
|
String |
toString()
Returns a string representation of the object.
|
public static final String DATE_FORMAT
public static Deadline MAX_VALUE
public static Deadline MIN_VALUE
public static Deadline calculate(long timeMillis, TimeValue timeValue)
timeMillis
- A time in UNIX milliseconds, usually the current time.timeValue
- time value to add to timeMillis
.public static Deadline calculate(TimeValue timeValue)
timeValue
- time value to add to timeMillis
.public boolean equals(Object obj)
Object
The equals
method implements an equivalence relation on non-null object references:
x
, x.equals(x)
should return true
.
x
and y
,
x.equals(y)
should return true
if and only if y.equals(x)
returns
true
.
x
, y
, and
z
, if x.equals(y)
returns true
and y.equals(z)
returns
true
, then x.equals(z)
should return true
.
x
and y
, multiple
invocations of x.equals(y)
consistently return true
or consistently return
false
, provided no information used in equals
comparisons on the objects is
modified.
x
, x.equals(null)
should return
false
.
The equals
method for class Object
implements the most discriminating possible
equivalence relation on objects; that is, for any non-null reference values x
and
y
, this method returns true
if and only if x
and y
refer to the
same object (x == y
has the value true
).
Note that it is generally necessary to override the hashCode
method whenever this method
is overridden, so as to maintain the general contract for the hashCode
method, which
states that equal objects must have equal hash codes.
equals
in class Object
obj
- the reference object with which to compare.true
if this object is the same as the obj argument; false
otherwise.Object.hashCode()
,
HashMap
public String format(TimeUnit overdueTimeUnit)
overdueTimeUnit
- the time unit to show how much over the deadline we are.public String formatTarget()
public Deadline freeze()
public static Deadline fromUnixMilliseconds(long value)
value
- a UNIX time in milliseconds.public long getValue()
public int hashCode()
Object
HashMap
.
The general contract of hashCode
is:
hashCode
method must consistently return the same integer, provided no
information used in equals
comparisons on the object is modified. This integer need not
remain consistent from one execution of an application to another execution of the same
application.
equals(Object)
method, then calling the
hashCode
method on each of the two objects must produce the same integer result.
Object.equals(java.lang.Object)
method, then calling the hashCode
method on each of the two objects must produce distinct integer results. However, the programmer
should be aware that producing distinct integer results for unequal objects may improve the
performance of hash tables.
As much as is reasonably practical, the hashCode method defined by class Object
does
return distinct integers for distinct objects. (This is typically implemented by converting the
internal address of the object into an integer, but this implementation technique is not required
by the JavaTM programming language.)
hashCode
in class Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public boolean isBefore(long millis)
millis
- the time to compare.public boolean isExpired()
public boolean isMax()
public boolean isMin()
public boolean isNotExpired()
public Deadline min(Deadline other)
Deadline
.other
- another deadline.this
and other
.public static Deadline parse(String source) throws java.text.ParseException
source
- a string in the format "yyyy-MM-dd\'T\'HH:mm:ss.SSSZ".java.text.ParseException
- if the specified source string cannot be parsed.public long remaining()
public TimeValue remainingTimeValue()
public String toString()
Object
toString
method returns a
string that "textually represents" this object. The result should be a concise but informative
representation that is easy for a person to read. It is recommended that all subclasses override
this method.
The toString
method for class Object
returns a string consisting of the name of
the class of which the object is an instance, the at-sign character `@
', and the unsigned
hexadecimal representation of the hash code of the object. In other words, this method returns a
string equal to the value of:
getClass().getName() + '@' + Integer.toHexString(hashCode())