org.joda.time

Class DateTimeComparator

Implemented Interfaces:
Comparator, Serializable

public class DateTimeComparator
extends java.lang.Object
implements Comparator, Serializable

DateTimeComparator provides comparators to compare one date with another.

Dates may be specified using any object recognised by the ConverterManager class.

The default objects recognised by the comparator are:

DateTimeComparator is thread-safe and immutable.

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

Constructor Summary

DateTimeComparator(DateTimeFieldType lowerLimit, DateTimeFieldType upperLimit)
Restricted constructor.

Method Summary

int
compare(Object lhsObj, Object rhsObj)
Compare two objects against only the range of date time fields as specified in the constructor.
boolean
equals(Object object)
Compares this comparator to another.
static DateTimeComparator
getDateOnlyInstance()
Returns a comparator that only considers date fields.
static DateTimeComparator
getInstance()
Returns a DateTimeComparator the compares the entire date time value.
static DateTimeComparator
getInstance(DateTimeFieldType lowerLimit)
Returns a DateTimeComparator with a lower limit only.
static DateTimeComparator
getInstance(DateTimeFieldType lowerLimit, DateTimeFieldType upperLimit)
Returns a DateTimeComparator with a lower and upper limit.
DateTimeFieldType
getLowerLimit()
Gets the field type that represents the lower limit of comparison.
static DateTimeComparator
getTimeOnlyInstance()
Returns a comparator that only considers time fields.
DateTimeFieldType
getUpperLimit()
Gets the field type that represents the upper limit of comparison.
int
hashCode()
Gets a suitable hashcode.
String
toString()
Gets a debugging string.

Constructor Details

DateTimeComparator

protected DateTimeComparator(DateTimeFieldType lowerLimit,
                             DateTimeFieldType upperLimit)
Restricted constructor.
Parameters:
lowerLimit - the lower field limit, null means no limit
upperLimit - the upper field limit, null means no limit

Method Details

compare

public int compare(Object lhsObj,
                   Object rhsObj)
Compare two objects against only the range of date time fields as specified in the constructor.
Parameters:
lhsObj - the first object, logically on the left of a < comparison, null means now
rhsObj - the second object, logically on the right of a < comparison, null means now
Returns:
zero if order does not matter, negative value if lhsObj < rhsObj, positive value otherwise.

equals

public boolean equals(Object object)
Compares this comparator to another.
Parameters:
object - the object to compare to
Returns:
true if equal

getDateOnlyInstance

public static DateTimeComparator getDateOnlyInstance()
Returns a comparator that only considers date fields. Time of day is ignored.
Returns:
a comparator over all date fields

getInstance

public static DateTimeComparator getInstance()
Returns a DateTimeComparator the compares the entire date time value.
Returns:
a comparator over all fields

getInstance

public static DateTimeComparator getInstance(DateTimeFieldType lowerLimit)
Returns a DateTimeComparator with a lower limit only. Fields of a magnitude less than the lower limit are excluded from comparisons.
Parameters:
lowerLimit - inclusive lower limit for fields to be compared, null means no limit
Returns:
a comparator over all fields above the lower limit

getInstance

public static DateTimeComparator getInstance(DateTimeFieldType lowerLimit,
                                             DateTimeFieldType upperLimit)
Returns a DateTimeComparator with a lower and upper limit. Fields of a magnitude less than the lower limit are excluded from comparisons. Fields of a magnitude greater than or equal to the upper limit are also excluded from comparisons. Either limit may be specified as null, which indicates an unbounded limit.
Parameters:
lowerLimit - inclusive lower limit for fields to be compared, null means no limit
upperLimit - exclusive upper limit for fields to be compared, null means no limit
Returns:
a comparator over all fields between the limits

getLowerLimit

public DateTimeFieldType getLowerLimit()
Gets the field type that represents the lower limit of comparison.
Returns:
the field type, null if no upper limit

getTimeOnlyInstance

public static DateTimeComparator getTimeOnlyInstance()
Returns a comparator that only considers time fields. Date is ignored.
Returns:
a comparator over all time fields

getUpperLimit

public DateTimeFieldType getUpperLimit()
Gets the field type that represents the upper limit of comparison.
Returns:
the field type, null if no upper limit

hashCode

public int hashCode()
Gets a suitable hashcode.
Returns:
the hashcode

toString

public String toString()
Gets a debugging string.
Returns:
a debugging string

Copyright (c) 2001-2006 - Joda.org