| java.lang.Object org.joda.time.base.AbstractPeriod org.joda.time.base.BasePeriod
All known Subclasses: org.joda.time.Period, org.joda.time.MutablePeriod,
BasePeriod | abstract public class BasePeriod extends AbstractPeriod implements ReadablePeriod,Serializable(Code) | | BasePeriod is an abstract implementation of ReadablePeriod that stores
data in a PeriodType and an int[] .
This class should generally not be used directly by API users.
The
ReadablePeriod interface should be used when different
kinds of period objects are to be referenced.
BasePeriod subclasses may be mutable and not thread-safe.
author: Brian S O'Neill author: Stephen Colebourne since: 1.0 |
Constructor Summary | |
protected | BasePeriod(int years, int months, int weeks, int days, int hours, int minutes, int seconds, int millis, PeriodType type) Creates a period from a set of field values. | protected | BasePeriod(long startInstant, long endInstant, PeriodType type, Chronology chrono) Creates a period from the given interval endpoints. | protected | BasePeriod(ReadableInstant startInstant, ReadableInstant endInstant, PeriodType type) Creates a period from the given interval endpoints. | protected | BasePeriod(ReadablePartial start, ReadablePartial end, PeriodType type) Creates a period from the given duration and end point.
The two partials must contain the same fields, thus you can
specify two LocalDate objects, or two LocalTime
objects, but not one of each.
As these are Partial objects, time zones have no effect on the result.
The two partials must also both be contiguous - see
DateTimeUtils.isContiguous(ReadablePartial) for a
definition. | protected | BasePeriod(ReadableInstant startInstant, ReadableDuration duration, PeriodType type) Creates a period from the given start point and duration. | protected | BasePeriod(ReadableDuration duration, ReadableInstant endInstant, PeriodType type) Creates a period from the given duration and end point. | protected | BasePeriod(long duration, PeriodType type, Chronology chrono) Creates a period from the given millisecond duration, which is only really
suitable for durations less than one day. | protected | BasePeriod(Object period, PeriodType type, Chronology chrono) Creates a new period based on another using the
ConverterManager . | protected | BasePeriod(int[] values, PeriodType type) Constructor used when we trust ourselves. |
Method Summary | |
protected void | addField(DurationFieldType field, int value) Adds the value of a field in this period. | protected void | addFieldInto(int[] values, DurationFieldType field, int value) Adds the value of a field in this period. | protected void | addPeriod(ReadablePeriod period) Adds the fields from another period. | protected int[] | addPeriodInto(int[] values, ReadablePeriod period) Adds the fields from another period. | protected PeriodType | checkPeriodType(PeriodType type) Validates a period type, converting nulls to a default value and
checking the type is suitable for this instance. | public DurationFieldType | getFieldType(int index) Gets the field type at the specified index. | public PeriodType | getPeriodType() Gets the period type. | public int | getValue(int index) Gets the value at the specified index. | protected void | mergePeriod(ReadablePeriod period) Merges the fields from another period. | protected int[] | mergePeriodInto(int[] values, ReadablePeriod period) Merges the fields from another period. | protected void | setField(DurationFieldType field, int value) Sets the value of a field in this period. | protected void | setFieldInto(int[] values, DurationFieldType field, int value) Sets the value of a field in this period. | protected void | setPeriod(ReadablePeriod period) Sets all the fields of this period from another. | protected void | setPeriod(int years, int months, int weeks, int days, int hours, int minutes, int seconds, int millis) Sets the eight standard the fields in one go. | protected void | setValue(int index, int value) Sets the value of the field at the specifed index. | protected void | setValues(int[] values) Sets the values of all fields. | public int | size() Gets the number of fields that this period supports. | public Duration | toDurationFrom(ReadableInstant startInstant) Gets the total millisecond duration of this period relative to a start instant. | public Duration | toDurationTo(ReadableInstant endInstant) Gets the total millisecond duration of this period relative to an
end instant. |
BasePeriod | protected BasePeriod(int years, int months, int weeks, int days, int hours, int minutes, int seconds, int millis, PeriodType type)(Code) | | Creates a period from a set of field values.
Parameters: years - amount of years in this period, which must be zero if unsupported Parameters: months - amount of months in this period, which must be zero if unsupported Parameters: weeks - amount of weeks in this period, which must be zero if unsupported Parameters: days - amount of days in this period, which must be zero if unsupported Parameters: hours - amount of hours in this period, which must be zero if unsupported Parameters: minutes - amount of minutes in this period, which must be zero if unsupported Parameters: seconds - amount of seconds in this period, which must be zero if unsupported Parameters: millis - amount of milliseconds in this period, which must be zero if unsupported Parameters: type - which set of fields this period supports throws: IllegalArgumentException - if period type is invalid throws: IllegalArgumentException - if an unsupported field's value is non-zero |
BasePeriod | protected BasePeriod(long startInstant, long endInstant, PeriodType type, Chronology chrono)(Code) | | Creates a period from the given interval endpoints.
Parameters: startInstant - interval start, in milliseconds Parameters: endInstant - interval end, in milliseconds Parameters: type - which set of fields this period supports, null means standard Parameters: chrono - the chronology to use, null means ISO default throws: IllegalArgumentException - if period type is invalid |
BasePeriod | protected BasePeriod(ReadableInstant startInstant, ReadableInstant endInstant, PeriodType type)(Code) | | Creates a period from the given interval endpoints.
Parameters: startInstant - interval start, null means now Parameters: endInstant - interval end, null means now Parameters: type - which set of fields this period supports, null means standard throws: IllegalArgumentException - if period type is invalid |
BasePeriod | protected BasePeriod(ReadablePartial start, ReadablePartial end, PeriodType type)(Code) | | Creates a period from the given duration and end point.
The two partials must contain the same fields, thus you can
specify two LocalDate objects, or two LocalTime
objects, but not one of each.
As these are Partial objects, time zones have no effect on the result.
The two partials must also both be contiguous - see
DateTimeUtils.isContiguous(ReadablePartial) for a
definition. Both LocalDate and LocalTime are contiguous.
Parameters: start - the start of the period, must not be null Parameters: end - the end of the period, must not be null Parameters: type - which set of fields this period supports, null means standard throws: IllegalArgumentException - if the partials are null or invalid since: 1.1 |
BasePeriod | protected BasePeriod(ReadableInstant startInstant, ReadableDuration duration, PeriodType type)(Code) | | Creates a period from the given start point and duration.
Parameters: startInstant - the interval start, null means now Parameters: duration - the duration of the interval, null means zero-length Parameters: type - which set of fields this period supports, null means standard |
BasePeriod | protected BasePeriod(ReadableDuration duration, ReadableInstant endInstant, PeriodType type)(Code) | | Creates a period from the given duration and end point.
Parameters: duration - the duration of the interval, null means zero-length Parameters: endInstant - the interval end, null means now Parameters: type - which set of fields this period supports, null means standard |
BasePeriod | protected BasePeriod(long duration, PeriodType type, Chronology chrono)(Code) | | Creates a period from the given millisecond duration, which is only really
suitable for durations less than one day.
Only fields that are precise will be used.
Thus the largest precise field may have a large value.
Parameters: duration - the duration, in milliseconds Parameters: type - which set of fields this period supports, null means standard Parameters: chrono - the chronology to use, null means ISO default throws: IllegalArgumentException - if period type is invalid |
BasePeriod | protected BasePeriod(Object period, PeriodType type, Chronology chrono)(Code) | | Creates a new period based on another using the
ConverterManager .
Parameters: period - the period to convert Parameters: type - which set of fields this period supports, null means use type from object Parameters: chrono - the chronology to use, null means ISO default throws: IllegalArgumentException - if period is invalid throws: IllegalArgumentException - if an unsupported field's value is non-zero |
BasePeriod | protected BasePeriod(int[] values, PeriodType type)(Code) | | Constructor used when we trust ourselves.
Do not expose publically.
Parameters: values - the values to use, not null, not cloned Parameters: type - which set of fields this period supports, not null |
addField | protected void addField(DurationFieldType field, int value)(Code) | | Adds the value of a field in this period.
Parameters: field - the field to set Parameters: value - the value to set throws: IllegalArgumentException - if field is is null or not supported. |
addFieldInto | protected void addFieldInto(int[] values, DurationFieldType field, int value)(Code) | | Adds the value of a field in this period.
Parameters: values - the array of values to update Parameters: field - the field to set Parameters: value - the value to set throws: IllegalArgumentException - if field is is null or not supported. |
addPeriod | protected void addPeriod(ReadablePeriod period)(Code) | | Adds the fields from another period.
Parameters: period - the period to add from, not null throws: IllegalArgumentException - if an unsupported field's value is non-zero |
addPeriodInto | protected int[] addPeriodInto(int[] values, ReadablePeriod period)(Code) | | Adds the fields from another period.
Parameters: values - the array of values to update Parameters: period - the period to add from, not null the updated values throws: IllegalArgumentException - if an unsupported field's value is non-zero |
checkPeriodType | protected PeriodType checkPeriodType(PeriodType type)(Code) | | Validates a period type, converting nulls to a default value and
checking the type is suitable for this instance.
Parameters: type - the type to check, may be null the validated type to use, not null throws: IllegalArgumentException - if the period type is invalid |
getFieldType | public DurationFieldType 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 |
getPeriodType | public PeriodType getPeriodType()(Code) | | Gets the period type.
the period type |
getValue | public int getValue(int index)(Code) | | Gets the value at the specified index.
Parameters: index - the index to retrieve the value of the field at the specified index throws: IndexOutOfBoundsException - if the index is invalid |
mergePeriod | protected void mergePeriod(ReadablePeriod period)(Code) | | Merges the fields from another period.
Parameters: period - the period to add from, not null throws: IllegalArgumentException - if an unsupported field's value is non-zero |
mergePeriodInto | protected int[] mergePeriodInto(int[] values, ReadablePeriod period)(Code) | | Merges the fields from another period.
Parameters: values - the array of values to update Parameters: period - the period to add from, not null the updated values throws: IllegalArgumentException - if an unsupported field's value is non-zero |
setField | protected void setField(DurationFieldType field, int value)(Code) | | Sets the value of a field in this period.
Parameters: field - the field to set Parameters: value - the value to set throws: IllegalArgumentException - if field is is null or not supported. |
setFieldInto | protected void setFieldInto(int[] values, DurationFieldType field, int value)(Code) | | Sets the value of a field in this period.
Parameters: values - the array of values to update Parameters: field - the field to set Parameters: value - the value to set throws: IllegalArgumentException - if field is null or not supported. |
setPeriod | protected void setPeriod(ReadablePeriod period)(Code) | | Sets all the fields of this period from another.
Parameters: period - the period to copy from, not null throws: IllegalArgumentException - if an unsupported field's value is non-zero |
setPeriod | protected void setPeriod(int years, int months, int weeks, int days, int hours, int minutes, int seconds, int millis)(Code) | | Sets the eight standard the fields in one go.
Parameters: years - amount of years in this period, which must be zero if unsupported Parameters: months - amount of months in this period, which must be zero if unsupported Parameters: weeks - amount of weeks in this period, which must be zero if unsupported Parameters: days - amount of days in this period, which must be zero if unsupported Parameters: hours - amount of hours in this period, which must be zero if unsupported Parameters: minutes - amount of minutes in this period, which must be zero if unsupported Parameters: seconds - amount of seconds in this period, which must be zero if unsupported Parameters: millis - amount of milliseconds in this period, which must be zero if unsupported throws: IllegalArgumentException - if an unsupported field's value is non-zero |
setValue | protected void setValue(int index, int value)(Code) | | Sets the value of the field at the specifed index.
Parameters: index - the index Parameters: value - the value to set throws: IndexOutOfBoundsException - if the index is invalid |
setValues | protected void setValues(int[] values)(Code) | | Sets the values of all fields.
Parameters: values - the array of values |
size | public int size()(Code) | | Gets the number of fields that this period supports.
the number of fields supported |
toDurationFrom | public Duration toDurationFrom(ReadableInstant startInstant)(Code) | | Gets the total millisecond duration of this period relative to a start instant.
This method adds the period to the specified instant in order to
calculate the duration.
An instant must be supplied as the duration of a period varies.
For example, a period of 1 month could vary between the equivalent of
28 and 31 days in milliseconds due to different length months.
Similarly, a day can vary at Daylight Savings cutover, typically between
23 and 25 hours.
Parameters: startInstant - the instant to add the period to, thus obtaining the duration the total length of the period as a duration relative to the start instant throws: ArithmeticException - if the millis exceeds the capacity of the duration |
toDurationTo | public Duration toDurationTo(ReadableInstant endInstant)(Code) | | Gets the total millisecond duration of this period relative to an
end instant.
This method subtracts the period from the specified instant in order
to calculate the duration.
An instant must be supplied as the duration of a period varies.
For example, a period of 1 month could vary between the equivalent of
28 and 31 days in milliseconds due to different length months.
Similarly, a day can vary at Daylight Savings cutover, typically between
23 and 25 hours.
Parameters: endInstant - the instant to subtract the period from, thus obtaining the duration the total length of the period as a duration relative to the end instant throws: ArithmeticException - if the millis exceeds the capacity of the duration |
|
|