public abstract class AbstractPartial extends Object implements ReadablePartial, Comparable<ReadablePartial>
Calculations on are performed using a Chronology
.
This chronology is set to be in the UTC time zone for all calculations.
The methods on this class use ReadablePartial.size()
,
getField(int, Chronology)
and
ReadablePartial.getValue(int)
to calculate their results.
Subclasses may have a better implementation.
AbstractPartial allows subclasses may be mutable and not thread-safe.
Modifier | Constructor and Description |
---|---|
protected |
AbstractPartial()
Constructor.
|
Modifier and Type | Method and Description |
---|---|
int |
compareTo(ReadablePartial other)
Compares this partial with another returning an integer
indicating the order.
|
boolean |
equals(Object partial)
Compares this ReadablePartial with another returning true if the chronology,
field types and values are equal.
|
int |
get(DateTimeFieldType type)
Get the value of one of the fields of a datetime.
|
DateTimeField |
getField(int index)
Gets the field at the specified index.
|
protected abstract DateTimeField |
getField(int index,
Chronology chrono)
Gets the field for a specific index in the chronology specified.
|
DateTimeField[] |
getFields()
Gets an array of the fields that this partial supports.
|
DateTimeFieldType |
getFieldType(int index)
Gets the field type at the specified index.
|
DateTimeFieldType[] |
getFieldTypes()
Gets an array of the field types that this partial supports.
|
int[] |
getValues()
Gets an array of the value of each of the fields that this partial supports.
|
int |
hashCode()
Gets a hash code for the ReadablePartial that is compatible with the
equals method.
|
int |
indexOf(DateTimeFieldType type)
Gets the index of the specified field, or -1 if the field is unsupported.
|
protected int |
indexOf(DurationFieldType type)
Gets the index of the first fields to have the specified duration,
or -1 if the field is unsupported.
|
protected int |
indexOfSupported(DateTimeFieldType type)
Gets the index of the specified field, throwing an exception if the
field is unsupported.
|
protected int |
indexOfSupported(DurationFieldType type)
Gets the index of the first fields to have the specified duration,
throwing an exception if the field is unsupported.
|
boolean |
isAfter(ReadablePartial partial)
Is this partial later than the specified partial.
|
boolean |
isBefore(ReadablePartial partial)
Is this partial earlier than the specified partial.
|
boolean |
isEqual(ReadablePartial partial)
Is this partial the same as the specified partial.
|
boolean |
isSupported(DateTimeFieldType type)
Checks whether the field specified is supported by this partial.
|
DateTime |
toDateTime(ReadableInstant baseInstant)
Resolves this partial against another complete instant to create a new
full instant.
|
String |
toString(DateTimeFormatter formatter)
Uses the specified formatter to convert this partial to a String.
|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
getChronology, getValue, size, toString
protected abstract DateTimeField getField(int index, Chronology chrono)
This method must not use any instance variables.
index
- the index to retrievechrono
- the chronology to useIndexOutOfBoundsException
- if the index is invalidpublic DateTimeFieldType getFieldType(int index)
getFieldType
in interface ReadablePartial
index
- the indexIndexOutOfBoundsException
- if the index is invalidpublic DateTimeFieldType[] getFieldTypes()
The fields are returned largest to smallest, for example Hour, Minute, Second.
public DateTimeField getField(int index)
getField
in interface ReadablePartial
index
- the indexIndexOutOfBoundsException
- if the index is invalidpublic DateTimeField[] getFields()
The fields are returned largest to smallest, for example Hour, Minute, Second.
public int[] getValues()
The fields are returned largest to smallest, for example Hour, Minute, Second.
Each value corresponds to the same array index as getFields()
public int get(DateTimeFieldType type)
The field specified must be one of those that is supported by the partial.
get
in interface ReadablePartial
type
- a DateTimeFieldType instance that is supported by this partialIllegalArgumentException
- if the field is null or not supportedpublic boolean isSupported(DateTimeFieldType type)
isSupported
in interface ReadablePartial
type
- the type to check, may be null which returns falsepublic int indexOf(DateTimeFieldType type)
type
- the type to check, may be null which returns -1protected int indexOfSupported(DateTimeFieldType type)
type
- the type to check, not nullIllegalArgumentException
- if the field is null or not supportedprotected int indexOf(DurationFieldType type)
type
- the type to check, may be null which returns -1protected int indexOfSupported(DurationFieldType type)
type
- the type to check, not nullIllegalArgumentException
- if the field is null or not supportedpublic DateTime toDateTime(ReadableInstant baseInstant)
For example, if this partial represents a time, then the result of this method will be the datetime from the specified base instant plus the time from this partial.
toDateTime
in interface ReadablePartial
baseInstant
- the instant that provides the missing fields, null means nowpublic boolean equals(Object partial)
equals
in interface ReadablePartial
equals
in class Object
partial
- an object to check againstpublic int hashCode()
hashCode
in interface ReadablePartial
hashCode
in class Object
public int compareTo(ReadablePartial other)
The fields are compared in order, from largest to smallest. The first field that is non-equal is used to determine the result.
The specified object must be a partial instance whose field types match those of this partial.
NOTE: Prior to v2.0, the Comparable
interface was only implemented
in this class and not in the ReadablePartial
interface.
compareTo
in interface Comparable<ReadablePartial>
other
- an object to check againstClassCastException
- if the partial is the wrong class
or if it has field types that don't matchNullPointerException
- if the partial is nullpublic boolean isAfter(ReadablePartial partial)
The fields are compared in order, from largest to smallest. The first field that is non-equal is used to determine the result.
You may not pass null into this method. This is because you need a time zone to accurately determine the current date.
partial
- a partial to check against, must not be nullIllegalArgumentException
- if the specified partial is nullClassCastException
- if the partial has field types that don't matchpublic boolean isBefore(ReadablePartial partial)
The fields are compared in order, from largest to smallest. The first field that is non-equal is used to determine the result.
You may not pass null into this method. This is because you need a time zone to accurately determine the current date.
partial
- a partial to check against, must not be nullIllegalArgumentException
- if the specified partial is nullClassCastException
- if the partial has field types that don't matchpublic boolean isEqual(ReadablePartial partial)
The fields are compared in order, from largest to smallest. If all fields are equal, the result is true.
You may not pass null into this method. This is because you need a time zone to accurately determine the current date.
partial
- a partial to check against, must not be nullIllegalArgumentException
- if the specified partial is nullClassCastException
- if the partial has field types that don't matchpublic String toString(DateTimeFormatter formatter)
formatter
- the formatter to use, null means use toString()
.Copyright © 2002–2021 Joda.org. All rights reserved.