org.joda.time.chrono

Class LimitChronology

Implemented Interfaces:
Serializable

public final class LimitChronology
extends AssembledChronology

Wraps another Chronology to impose limits on the range of instants that the fields within a Chronology may support. The limits are applied to both DateTimeFields and DurationFields.

Methods in DateTimeField and DurationField throw an IllegalArgumentException whenever given an input instant that is outside the limits or when an attempt is made to move an instant outside the limits.

LimitChronology is thread-safe and immutable.

Authors:
Brian S O'Neill
Stephen Colebourne
Since:
1.0

Nested Class Summary

Nested classes/interfaces inherited from class org.joda.time.chrono.AssembledChronology

AssembledChronology.Fields

Method Summary

protected void
assemble(AssembledChronology.Fields fields)
Invoked by the constructor and after deserialization to allow subclasses to define all of its supported fields.
boolean
equals(Object obj)
A limit chronology is only equal to a limit chronology with the same base chronology and limits.
long
getDateTimeMillis(int year, int monthOfYear, int dayOfMonth, int millisOfDay)
Returns a datetime millisecond instant, formed from the given year, month, day, and millisecond values.
long
getDateTimeMillis(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond)
Returns a datetime millisecond instant, formed from the given year, month, day, hour, minute, second, and millisecond values.
long
getDateTimeMillis(long instant, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond)
Returns a datetime millisecond instant, from from the given instant, hour, minute, second, and millisecond values.
static LimitChronology
getInstance(Chronology base, ReadableDateTime lowerLimit, ReadableDateTime upperLimit)
Wraps another chronology, with datetime limits.
DateTime
getLowerLimit()
Returns the inclusive lower limit instant.
DateTime
getUpperLimit()
Returns the inclusive upper limit instant.
int
hashCode()
A suitable hashcode for the chronology.
String
toString()
A debugging string for the chronology.
Chronology
withUTC()
If this LimitChronology is already UTC, then this is returned.
Chronology
withZone(DateTimeZone zone)
If this LimitChronology has the same time zone as the one given, then this is returned.

Methods inherited from class org.joda.time.chrono.AssembledChronology

assemble, centuries, centuryOfEra, clockhourOfDay, clockhourOfHalfday, dayOfMonth, dayOfWeek, dayOfYear, days, era, eras, getBase, getDateTimeMillis, getDateTimeMillis, getDateTimeMillis, getParam, getZone, halfdayOfDay, halfdays, hourOfDay, hourOfHalfday, hours, millis, millisOfDay, millisOfSecond, minuteOfDay, minuteOfHour, minutes, monthOfYear, months, secondOfDay, secondOfMinute, seconds, weekOfWeekyear, weeks, weekyear, weekyearOfCentury, weekyears, year, yearOfCentury, yearOfEra, years

Methods inherited from class org.joda.time.chrono.BaseChronology

add, add, centuries, centuryOfEra, clockhourOfDay, clockhourOfHalfday, dayOfMonth, dayOfWeek, dayOfYear, days, era, eras, get, get, get, getDateTimeMillis, getDateTimeMillis, getDateTimeMillis, getZone, halfdayOfDay, halfdays, hourOfDay, hourOfHalfday, hours, millis, millisOfDay, millisOfSecond, minuteOfDay, minuteOfHour, minutes, monthOfYear, months, secondOfDay, secondOfMinute, seconds, set, toString, validate, weekOfWeekyear, weeks, weekyear, weekyearOfCentury, weekyears, withUTC, withZone, year, yearOfCentury, yearOfEra, years

Methods inherited from class org.joda.time.Chronology

add, add, centuries, centuryOfEra, clockhourOfDay, clockhourOfHalfday, dayOfMonth, dayOfWeek, dayOfYear, days, era, eras, get, get, get, getBuddhist, getBuddhist, getBuddhistUTC, getCoptic, getCoptic, getCopticUTC, getDateTimeMillis, getDateTimeMillis, getDateTimeMillis, getGJ, getGJ, getGJUTC, getGregorian, getGregorian, getGregorianUTC, getISO, getISO, getISOUTC, getJulian, getJulian, getJulianUTC, getZone, halfdayOfDay, halfdays, hourOfDay, hourOfHalfday, hours, millis, millisOfDay, millisOfSecond, minuteOfDay, minuteOfHour, minutes, monthOfYear, months, secondOfDay, secondOfMinute, seconds, set, toString, validate, weekOfWeekyear, weeks, weekyear, weekyearOfCentury, weekyears, withUTC, withZone, year, yearOfCentury, yearOfEra, years

Method Details

assemble

protected void assemble(AssembledChronology.Fields fields)
Invoked by the constructor and after deserialization to allow subclasses to define all of its supported fields. All unset fields default to unsupported instances.
Overrides:
assemble in interface AssembledChronology
Parameters:
fields - container of fields

equals

public boolean equals(Object obj)
A limit chronology is only equal to a limit chronology with the same base chronology and limits.
Parameters:
obj - the object to compare to
Returns:
true if equal
Since:
1.4

getDateTimeMillis

public long getDateTimeMillis(int year,
                              int monthOfYear,
                              int dayOfMonth,
                              int millisOfDay)
            throws IllegalArgumentException
Returns a datetime millisecond instant, formed from the given year, month, day, and millisecond values. The set of given values must refer to a valid datetime, or else an IllegalArgumentException is thrown.

The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.

Overrides:
getDateTimeMillis in interface AssembledChronology
Parameters:
year - year to use
monthOfYear - month to use
dayOfMonth - day of month to use
millisOfDay - millisecond to use
Returns:
millisecond instant from 1970-01-01T00:00:00Z

getDateTimeMillis

public long getDateTimeMillis(int year,
                              int monthOfYear,
                              int dayOfMonth,
                              int hourOfDay,
                              int minuteOfHour,
                              int secondOfMinute,
                              int millisOfSecond)
            throws IllegalArgumentException
Returns a datetime millisecond instant, formed from the given year, month, day, hour, minute, second, and millisecond values. The set of given values must refer to a valid datetime, or else an IllegalArgumentException is thrown.

The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.

Overrides:
getDateTimeMillis in interface AssembledChronology
Parameters:
year - year to use
monthOfYear - month to use
dayOfMonth - day of month to use
hourOfDay - hour to use
minuteOfHour - minute to use
secondOfMinute - second to use
millisOfSecond - millisecond to use
Returns:
millisecond instant from 1970-01-01T00:00:00Z

getDateTimeMillis

public long getDateTimeMillis(long instant,
                              int hourOfDay,
                              int minuteOfHour,
                              int secondOfMinute,
                              int millisOfSecond)
            throws IllegalArgumentException
Returns a datetime millisecond instant, from from the given instant, hour, minute, second, and millisecond values. The set of given values must refer to a valid datetime, or else an IllegalArgumentException is thrown.

The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.

Overrides:
getDateTimeMillis in interface AssembledChronology
Parameters:
instant - instant to start from
hourOfDay - hour to use
minuteOfHour - minute to use
secondOfMinute - second to use
millisOfSecond - millisecond to use
Returns:
millisecond instant from 1970-01-01T00:00:00Z

getInstance

public static LimitChronology getInstance(Chronology base,
                                          ReadableDateTime lowerLimit,
                                          ReadableDateTime upperLimit)
Wraps another chronology, with datetime limits. When withUTC or withZone is called, the returned LimitChronology instance has the same limits, except they are time zone adjusted.
Parameters:
base - base chronology to wrap
lowerLimit - inclusive lower limit, or null if none
upperLimit - exclusive upper limit, or null if none

getLowerLimit

public DateTime getLowerLimit()
Returns the inclusive lower limit instant.
Returns:
lower limit

getUpperLimit

public DateTime getUpperLimit()
Returns the inclusive upper limit instant.
Returns:
upper limit

hashCode

public int hashCode()
A suitable hashcode for the chronology.
Returns:
the hashcode
Since:
1.4

toString

public String toString()
A debugging string for the chronology.
Overrides:
toString in interface BaseChronology
Returns:
the debugging string

withUTC

public Chronology withUTC()
If this LimitChronology is already UTC, then this is returned. Otherwise, a new instance is returned, with the limits adjusted to the new time zone.
Overrides:
withUTC in interface BaseChronology

withZone

public Chronology withZone(DateTimeZone zone)
If this LimitChronology has the same time zone as the one given, then this is returned. Otherwise, a new instance is returned, with the limits adjusted to the new time zone.
Overrides:
withZone in interface BaseChronology

Copyright (c) 2001-2006 - Joda.org