public final class LimitChronology extends AssembledChronology
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.
Modifier and Type | Class and Description |
---|---|
private class |
LimitChronology.LimitDateTimeField |
private class |
LimitChronology.LimitDurationField |
private class |
LimitChronology.LimitException
Extends IllegalArgumentException such that the exception message is not
generated unless it is actually requested.
|
AssembledChronology.Fields
Modifier and Type | Field and Description |
---|---|
(package private) DateTime |
iLowerLimit |
(package private) DateTime |
iUpperLimit |
private LimitChronology |
iWithUTC |
private static long |
serialVersionUID
Serialization lock
|
Modifier | Constructor and Description |
---|---|
private |
LimitChronology(Chronology base,
DateTime lowerLimit,
DateTime upperLimit)
Wraps another chronology, with datetime limits.
|
Modifier and Type | Method and Description |
---|---|
protected void |
assemble(AssembledChronology.Fields fields)
Invoked by the constructor and after deserialization to allow subclasses
to define all of its supported fields.
|
(package private) void |
checkLimits(long instant,
java.lang.String desc) |
private DateTimeField |
convertField(DateTimeField field,
java.util.HashMap<java.lang.Object,java.lang.Object> converted) |
private DurationField |
convertField(DurationField field,
java.util.HashMap<java.lang.Object,java.lang.Object> converted) |
boolean |
equals(java.lang.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.
|
java.lang.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.
|
centuries, centuryOfEra, clockhourOfDay, clockhourOfHalfday, dayOfMonth, dayOfWeek, dayOfYear, days, era, eras, getBase, 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
private static final long serialVersionUID
final DateTime iLowerLimit
final DateTime iUpperLimit
private transient LimitChronology iWithUTC
private LimitChronology(Chronology base, DateTime lowerLimit, DateTime upperLimit)
lowerLimit
- inclusive lower limit, or null if noneupperLimit
- exclusive upper limit, or null if nonepublic static LimitChronology getInstance(Chronology base, ReadableDateTime lowerLimit, ReadableDateTime upperLimit)
base
- base chronology to wraplowerLimit
- inclusive lower limit, or null if noneupperLimit
- exclusive upper limit, or null if nonejava.lang.IllegalArgumentException
- if chronology is null or limits are invalidpublic DateTime getLowerLimit()
public DateTime getUpperLimit()
public Chronology withUTC()
withUTC
in class BaseChronology
public Chronology withZone(DateTimeZone zone)
withZone
in class BaseChronology
zone
- to use, or default if nullZonedChronology
public long getDateTimeMillis(int year, int monthOfYear, int dayOfMonth, int millisOfDay) throws java.lang.IllegalArgumentException
BaseChronology
The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.
getDateTimeMillis
in class AssembledChronology
year
- year to usemonthOfYear
- month to usedayOfMonth
- day of month to usemillisOfDay
- millisecond to usejava.lang.IllegalArgumentException
- if the values are invalidpublic long getDateTimeMillis(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond) throws java.lang.IllegalArgumentException
BaseChronology
The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.
getDateTimeMillis
in class AssembledChronology
year
- year to usemonthOfYear
- month to usedayOfMonth
- day of month to usehourOfDay
- hour to useminuteOfHour
- minute to usesecondOfMinute
- second to usemillisOfSecond
- millisecond to usejava.lang.IllegalArgumentException
- if the values are invalidpublic long getDateTimeMillis(long instant, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond) throws java.lang.IllegalArgumentException
BaseChronology
The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.
getDateTimeMillis
in class AssembledChronology
instant
- instant to start fromhourOfDay
- hour to useminuteOfHour
- minute to usesecondOfMinute
- second to usemillisOfSecond
- millisecond to usejava.lang.IllegalArgumentException
- if the values are invalidprotected void assemble(AssembledChronology.Fields fields)
AssembledChronology
assemble
in class AssembledChronology
fields
- container of fieldsprivate DurationField convertField(DurationField field, java.util.HashMap<java.lang.Object,java.lang.Object> converted)
private DateTimeField convertField(DateTimeField field, java.util.HashMap<java.lang.Object,java.lang.Object> converted)
void checkLimits(long instant, java.lang.String desc)
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
obj
- the object to compare topublic int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class BaseChronology