| java.lang.Object org.joda.time.base.AbstractPartial org.joda.time.Partial
Partial | final public class Partial extends AbstractPartial implements ReadablePartial,Serializable(Code) | | Partial is an immutable partial datetime supporting any set of datetime fields.
A Partial instance can be used to hold any combination of fields.
The instance does not contain a time zone, so any datetime is local.
A Partial can be matched against an instant using
Partial.isMatch(ReadableInstant) .
This method compares each field on this partial with those of the instant
and determines if the partial matches the instant.
Given this definition, an empty Partial instance represents any datetime
and always matches.
Calculations on Partial are performed using a
Chronology .
This chronology is set to be in the UTC time zone for all calculations.
Each individual field can be queried in two ways:
get(DateTimeFieldType.monthOfYear())
property(DateTimeFieldType.monthOfYear()).get()
The second technique also provides access to other useful methods on the
field:
- numeric value -
monthOfYear().get()
- text value -
monthOfYear().getAsText()
- short text value -
monthOfYear().getAsShortText()
- maximum/minimum values -
monthOfYear().getMaximumValue()
- add/subtract -
monthOfYear().addToCopy()
- set -
monthOfYear().setCopy()
Partial is thread-safe and immutable, provided that the Chronology is as well.
All standard Chronology classes supplied are thread-safe and immutable.
author: Stephen Colebourne since: 1.1 |
Constructor Summary | |
public | Partial() Constructs a Partial with no fields or values, which can be considered
to represent any date. | public | Partial(Chronology chrono) Constructs a Partial with no fields or values, which can be considered
to represent any date. | public | Partial(DateTimeFieldType type, int value) Constructs a Partial with the specified field and value. | public | Partial(DateTimeFieldType type, int value, Chronology chronology) Constructs a Partial with the specified field and value. | public | Partial(DateTimeFieldType[] types, int[] values) Constructs a Partial with the specified fields and values. | public | Partial(DateTimeFieldType[] types, int[] values, Chronology chronology) Constructs a Partial with the specified fields and values. | public | Partial(ReadablePartial partial) Constructs a Partial by copying all the fields and types from
another partial. | | Partial(Partial partial, int[] values) Constructs a Partial with the specified values. | | Partial(Chronology chronology, DateTimeFieldType[] types, int[] values) Constructs a Partial with the specified chronology, fields and values. |
Method Summary | |
public Chronology | getChronology() Gets the chronology of the partial which is never null. | protected DateTimeField | getField(int index, Chronology chrono) Gets the field for a specific index in the chronology specified. | public DateTimeFieldType | getFieldType(int index) Gets the field type at the specified index. | public DateTimeFieldType[] | getFieldTypes() Gets an array of the field type of each of the fields that
this partial supports. | public DateTimeFormatter | getFormatter() Gets a formatter suitable for the fields in this partial.
If there is no appropriate ISO format, null is returned.
This method may return a formatter that does not display all the
fields of the partial. | public int | getValue(int index) Gets the value of the field at the specifed index. | public int[] | getValues() Gets an array of the value of each of the fields that
this partial supports. | public boolean | isMatch(ReadableInstant instant) Does this partial match the specified instant. | public boolean | isMatch(ReadablePartial partial) Does this partial match the specified partial. | public Partial | minus(ReadablePeriod period) Gets a copy of this instance with the specified period take away. | public Partial | plus(ReadablePeriod period) Gets a copy of this instance with the specified period added. | public Property | property(DateTimeFieldType type) Gets the property object for the specified type, which contains
many useful methods for getting and manipulating the partial. | public int | size() Gets the number of fields in this partial. | public String | toString() Output the date in an appropriate ISO8601 format. | public String | toString(String pattern) Output the date using the specified format pattern. | public String | toString(String pattern, Locale locale) Output the date using the specified format pattern. | public String | toStringList() Gets a string version of the partial that lists all the fields.
This method exists to provide a better debugging toString than
the standard toString. | public Partial | with(DateTimeFieldType fieldType, int value) Gets a copy of this date with the specified field set to a new value. | public Partial | withChronologyRetainFields(Chronology newChronology) Creates a new Partial instance with the specified chronology. | public Partial | withField(DateTimeFieldType fieldType, int value) Gets a copy of this Partial with the specified field set to a new value. | public Partial | withFieldAddWrapped(DurationFieldType fieldType, int amount) Gets a copy of this Partial with the value of the specified field increased.
If this partial does not support the field, an exception is thrown.
If the addition is zero, then this is returned.
The addition will overflow into larger fields (eg. | public Partial | withFieldAdded(DurationFieldType fieldType, int amount) Gets a copy of this Partial with the value of the specified field increased.
If this partial does not support the field, an exception is thrown.
If the addition is zero, then this is returned.
The addition will overflow into larger fields (eg. | public Partial | withPeriodAdded(ReadablePeriod period, int scalar) Gets a copy of this Partial with the specified period added.
If the addition is zero, then this is returned.
Fields in the period that aren't present in the partial are ignored.
This method is typically used to add multiple copies of complex
period instances. | public Partial | without(DateTimeFieldType fieldType) Gets a copy of this date with the specified field removed. |
Partial | public Partial()(Code) | | Constructs a Partial with no fields or values, which can be considered
to represent any date.
This is most useful when constructing partials, for example:
Partial p = new Partial()
.with(DateTimeFieldType.dayOfWeek(), 5)
.with(DateTimeFieldType.hourOfDay(), 12)
.with(DateTimeFieldType.minuteOfHour(), 20);
Note that, although this is a clean way to write code, it is fairly
inefficient internally.
The constructor uses the default ISO chronology.
|
Partial | public Partial(Chronology chrono)(Code) | | Constructs a Partial with no fields or values, which can be considered
to represent any date.
This is most useful when constructing partials, for example:
Partial p = new Partial(chrono)
.with(DateTimeFieldType.dayOfWeek(), 5)
.with(DateTimeFieldType.hourOfDay(), 12)
.with(DateTimeFieldType.minuteOfHour(), 20);
Note that, although this is a clean way to write code, it is fairly
inefficient internally.
Parameters: chrono - the chronology, null means ISO |
Partial | public Partial(DateTimeFieldType type, int value)(Code) | | Constructs a Partial with the specified field and value.
The constructor uses the default ISO chronology.
Parameters: type - the single type to create the partial from, not null Parameters: value - the value to store throws: IllegalArgumentException - if the type or value is invalid |
Partial | public Partial(DateTimeFieldType type, int value, Chronology chronology)(Code) | | Constructs a Partial with the specified field and value.
The constructor uses the specified chronology.
Parameters: type - the single type to create the partial from, not null Parameters: value - the value to store Parameters: chronology - the chronology, null means ISO throws: IllegalArgumentException - if the type or value is invalid |
Partial | public Partial(DateTimeFieldType[] types, int[] values)(Code) | | Constructs a Partial with the specified fields and values.
The fields must be specified in the order largest to smallest.
The constructor uses the specified chronology.
Parameters: types - the types to create the partial from, not null Parameters: values - the values to store, not null throws: IllegalArgumentException - if the types or values are invalid |
Partial | public Partial(DateTimeFieldType[] types, int[] values, Chronology chronology)(Code) | | Constructs a Partial with the specified fields and values.
The fields must be specified in the order largest to smallest.
The constructor uses the specified chronology.
Parameters: types - the types to create the partial from, not null Parameters: values - the values to store, not null Parameters: chronology - the chronology, null means ISO throws: IllegalArgumentException - if the types or values are invalid |
Partial | public Partial(ReadablePartial partial)(Code) | | Constructs a Partial by copying all the fields and types from
another partial.
This is most useful when copying from a YearMonthDay or TimeOfDay.
|
Partial | Partial(Partial partial, int[] values)(Code) | | Constructs a Partial with the specified values.
This constructor assigns and performs no validation.
Parameters: partial - the partial to copy Parameters: values - the values to store throws: IllegalArgumentException - if the types or values are invalid |
Partial | Partial(Chronology chronology, DateTimeFieldType[] types, int[] values)(Code) | | Constructs a Partial with the specified chronology, fields and values.
This constructor assigns and performs no validation.
Parameters: chronology - the chronology Parameters: types - the types to create the partial from Parameters: values - the values to store throws: IllegalArgumentException - if the types or values are invalid |
getChronology | public Chronology getChronology()(Code) | | Gets the chronology of the partial which is never null.
The
Chronology is the calculation engine behind the partial and
provides conversion and validation of the fields in a particular calendar system.
the chronology, never null |
getField | protected DateTimeField getField(int index, Chronology chrono)(Code) | | Gets the field for a specific index in the chronology specified.
Parameters: index - the index to retrieve Parameters: chrono - the chronology to use the field throws: IndexOutOfBoundsException - if the index is invalid |
getFieldType | public DateTimeFieldType getFieldType(int index)(Code) | | Gets the field type at the specified index.
Parameters: index - the index to retrieve the field at the specified index throws: IndexOutOfBoundsException - if the index is invalid |
getFieldTypes | public DateTimeFieldType[] getFieldTypes()(Code) | | Gets an array of the field type of each of the fields that
this partial supports.
The fields are returned largest to smallest.
the array of field types (cloned), largest to smallest |
getFormatter | public DateTimeFormatter getFormatter()(Code) | | Gets a formatter suitable for the fields in this partial.
If there is no appropriate ISO format, null is returned.
This method may return a formatter that does not display all the
fields of the partial. This might occur when you have overlapping
fields, such as dayOfWeek and dayOfMonth.
a formatter suitable for the fields in this partial, nullif none is suitable |
getValue | public int getValue(int index)(Code) | | Gets the value of the field at the specifed index.
Parameters: index - the index the value throws: IndexOutOfBoundsException - if the index is invalid |
getValues | public int[] getValues()(Code) | | Gets an array of the value of each of the fields that
this partial supports.
The fields are returned largest to smallest.
Each value corresponds to the same array index as getFieldTypes()
the current values of each field (cloned), largest to smallest |
isMatch | public boolean isMatch(ReadableInstant instant)(Code) | | Does this partial match the specified instant.
A match occurs when all the fields of this partial are the same as the
corresponding fields on the specified instant.
Parameters: instant - an instant to check against, null means now in default zone true if this partial matches the specified instant |
isMatch | public boolean isMatch(ReadablePartial partial)(Code) | | Does this partial match the specified partial.
A match occurs when all the fields of this partial are the same as the
corresponding fields on the specified partial.
Parameters: partial - a partial to check against, must not be null true if this partial matches the specified partial throws: IllegalArgumentException - if the partial is null throws: IllegalArgumentException - if the fields of the two partials do not match since: 1.5 |
minus | public Partial minus(ReadablePeriod period)(Code) | | Gets a copy of this instance with the specified period take away.
If the amount is zero or null, then this is returned.
Parameters: period - the period to reduce this instant by a copy of this instance with the period taken away throws: ArithmeticException - if the new datetime exceeds the capacity of a long |
plus | public Partial plus(ReadablePeriod period)(Code) | | Gets a copy of this instance with the specified period added.
If the amount is zero or null, then this is returned.
Parameters: period - the duration to add to this one, null means zero a copy of this instance with the period added throws: ArithmeticException - if the new datetime exceeds the capacity of a long |
size | public int size()(Code) | | Gets the number of fields in this partial.
the field count |
toString | public String toString()(Code) | | Output the date in an appropriate ISO8601 format.
This method will output the partial in one of two ways.
If
Partial.getFormatter()
If there is no appropriate ISO format a dump of the fields is output
via
Partial.toStringList() .
ISO8601 formatted string |
toString | public String toString(String pattern)(Code) | | Output the date using the specified format pattern.
Unsupported fields will appear as special unicode characters.
Parameters: pattern - the pattern specification, null means use toString See Also: org.joda.time.format.DateTimeFormat |
toString | public String toString(String pattern, Locale locale)(Code) | | Output the date using the specified format pattern.
Unsupported fields will appear as special unicode characters.
Parameters: pattern - the pattern specification, null means use toString Parameters: locale - Locale to use, null means default See Also: org.joda.time.format.DateTimeFormat |
toStringList | public String toStringList()(Code) | | Gets a string version of the partial that lists all the fields.
This method exists to provide a better debugging toString than
the standard toString. This method lists all the fields and their
values in a style similar to the collections framework.
a toString format that lists all the fields |
with | public Partial with(DateTimeFieldType fieldType, int value)(Code) | | Gets a copy of this date with the specified field set to a new value.
If this partial did not previously support the field, the new one will.
Contrast this behaviour with
Partial.withField(DateTimeFieldType,int) .
For example, if the field type is dayOfMonth then the day
would be changed/added in the returned instance.
Parameters: fieldType - the field type to set, not null Parameters: value - the value to set a copy of this instance with the field set throws: IllegalArgumentException - if the value is null or invalid |
withChronologyRetainFields | public Partial withChronologyRetainFields(Chronology newChronology)(Code) | | Creates a new Partial instance with the specified chronology.
This instance is immutable and unaffected by this method call.
This method retains the values of the fields, thus the result will
typically refer to a different instant.
The time zone of the specified chronology is ignored, as Partial
operates without a time zone.
Parameters: newChronology - the new chronology, null means ISO a copy of this datetime with a different chronology throws: IllegalArgumentException - if the values are invalid for the new chronology |
withField | public Partial withField(DateTimeFieldType fieldType, int value)(Code) | | Gets a copy of this Partial with the specified field set to a new value.
If this partial does not support the field, an exception is thrown.
Contrast this behaviour with
Partial.with(DateTimeFieldType,int) .
For example, if the field type is dayOfMonth then the day
would be changed in the returned instance if supported.
Parameters: fieldType - the field type to set, not null Parameters: value - the value to set a copy of this instance with the field set throws: IllegalArgumentException - if the value is null or invalid |
withFieldAddWrapped | public Partial withFieldAddWrapped(DurationFieldType fieldType, int amount)(Code) | | Gets a copy of this Partial with the value of the specified field increased.
If this partial does not support the field, an exception is thrown.
If the addition is zero, then this is returned.
The addition will overflow into larger fields (eg. minute to hour).
If the maximum is reached, the addition will wra.
Parameters: fieldType - the field type to add to, not null Parameters: amount - the amount to add a copy of this instance with the field updated throws: IllegalArgumentException - if the value is null or invalid throws: ArithmeticException - if the new datetime exceeds the capacity |
withFieldAdded | public Partial withFieldAdded(DurationFieldType fieldType, int amount)(Code) | | Gets a copy of this Partial with the value of the specified field increased.
If this partial does not support the field, an exception is thrown.
If the addition is zero, then this is returned.
The addition will overflow into larger fields (eg. minute to hour).
However, it will not wrap around if the top maximum is reached.
Parameters: fieldType - the field type to add to, not null Parameters: amount - the amount to add a copy of this instance with the field updated throws: IllegalArgumentException - if the value is null or invalid throws: ArithmeticException - if the new datetime exceeds the capacity |
withPeriodAdded | public Partial withPeriodAdded(ReadablePeriod period, int scalar)(Code) | | Gets a copy of this Partial with the specified period added.
If the addition is zero, then this is returned.
Fields in the period that aren't present in the partial are ignored.
This method is typically used to add multiple copies of complex
period instances. Adding one field is best achieved using the method
Partial.withFieldAdded(DurationFieldType,int) .
Parameters: period - the period to add to this one, null means zero Parameters: scalar - the amount of times to add, such as -1 to subtract once a copy of this instance with the period added throws: ArithmeticException - if the new datetime exceeds the capacity |
without | public Partial without(DateTimeFieldType fieldType)(Code) | | Gets a copy of this date with the specified field removed.
If this partial did not previously support the field, no error occurs.
Parameters: fieldType - the field type to remove, may be null a copy of this instance with the field removed |
|
|