public abstract class AbstractPeriod extends java.lang.Object implements ReadablePeriod
This class should generally not be used directly by API users. The
ReadablePeriod
interface should be used when different
kinds of periods are to be referenced.
AbstractPeriod subclasses may be mutable and not thread-safe.
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object period)
Compares this object with the specified object for equality based
on the value of each field.
|
int |
get(DurationFieldType type)
Gets the value of one of the fields.
|
DurationFieldType |
getFieldType(int index)
Gets the field type at the specified index.
|
DurationFieldType[] |
getFieldTypes()
Gets an array of the field types that this period supports.
|
int[] |
getValues()
Gets an array of the value of each of the fields that this period supports.
|
int |
hashCode()
Gets a hash code for the period as defined by ReadablePeriod.
|
int |
indexOf(DurationFieldType type)
Gets the index of the field in this period.
|
boolean |
isSupported(DurationFieldType type)
Checks whether the field specified is supported by this period.
|
int |
size()
Gets the number of fields that this period supports.
|
MutablePeriod |
toMutablePeriod()
Get this object as a
MutablePeriod . |
Period |
toPeriod()
Get this period as an immutable
Period object. |
java.lang.String |
toString()
Gets the value as a String in the ISO8601 duration format.
|
java.lang.String |
toString(PeriodFormatter formatter)
Uses the specified formatter to convert this period to a String.
|
getPeriodType, getValue
public int size()
size
in interface ReadablePeriod
public DurationFieldType getFieldType(int index)
getFieldType
in interface ReadablePeriod
index
- the index to retrievejava.lang.IndexOutOfBoundsException
- if the index is invalidpublic DurationFieldType[] getFieldTypes()
The fields are returned largest to smallest, for example Hours, Minutes, Seconds.
public int[] getValues()
The fields are returned largest to smallest, for example Hours, Minutes, Seconds.
Each value corresponds to the same array index as getFields()
public int get(DurationFieldType type)
If the field type specified is not supported by the period then zero is returned.
get
in interface ReadablePeriod
type
- the field type to query, null returns zeropublic boolean isSupported(DurationFieldType type)
isSupported
in interface ReadablePeriod
type
- the type to check, may be null which returns falsepublic int indexOf(DurationFieldType type)
type
- the type to check, may be null which returns -1public Period toPeriod()
Period
object.toPeriod
in interface ReadablePeriod
public MutablePeriod toMutablePeriod()
MutablePeriod
.
This will always return a new MutablePeriod
with the same fields.
toMutablePeriod
in interface ReadablePeriod
public boolean equals(java.lang.Object period)
Note that a period of 1 day is not equal to a period of 24 hours, nor is 1 hour equal to 60 minutes. Only periods with the same amount in each field are equal.
This is because periods represent an abstracted definition of a time period (eg. a day may not actually be 24 hours, it might be 23 or 25 at daylight savings boundary).
To compare the actual duration of two periods, convert both to
Duration
s, an operation that emphasises
that the result may differ according to the date you choose.
equals
in interface ReadablePeriod
equals
in class java.lang.Object
period
- a readable period to check againstpublic int hashCode()
hashCode
in interface ReadablePeriod
hashCode
in class java.lang.Object
public java.lang.String toString()
For example, "PT6H3M7S" represents 6 hours, 3 minutes, 7 seconds.
For more control over the output, see
PeriodFormatterBuilder
.
toString
in interface ReadablePeriod
toString
in class java.lang.Object
public java.lang.String toString(PeriodFormatter formatter)
formatter
- the formatter to use, null means use toString()
.Copyright © 2010 - 2020 Adobe. All Rights Reserved