Top Description Fields Constructors Methods
org.codehaus.groovy.runtime

public Class NumberAwareComparator<T>

extends Object
implements Comparator<T>, Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable, java.util.Comparator
Imports
groovy.lang.GroovyRuntimeException, org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation, java.io.Serializable, java.util.Comparator

Compares two objects using Groovy's friendly comparison algorithm, i.e. handles nulls gracefully (nul being less than everything else) and performs numeric type coercion if required.

Field Summary

Modifier and TypeField and Description
private boolean
private static final long

Constructor Summary

AccessConstructor and Description
public
public
NumberAwareComparator(boolean ignoreZeroSign)

Method Summary

Modifier and TypeMethod and Description
public int
compare(T
the first object to be compared.
o1
,
T
the second object to be compared.
o2
)

Implements java.util.Comparator.compare.

Compares its two arguments for order.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ignoreZeroSignback to summary
private boolean ignoreZeroSign
serialVersionUIDback to summary
private static final long serialVersionUID

Constructor Detail

NumberAwareComparatorback to summary
public NumberAwareComparator()
NumberAwareComparatorback to summary
public NumberAwareComparator(boolean ignoreZeroSign)
Since
3.0.8

Method Detail

compareback to summary
public int compare(T o1, T o2)

Implements java.util.Comparator.compare.

Doc from java.util.Comparator.compare.

Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

The implementor must ensure that signum(compare(x, y)) == -signum(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an exception.)

The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.

Finally, the implementor must ensure that compare(x, y)==0 implies that signum(compare(x, z))==signum(compare(y, z)) for all z.

Parameters
o1:T

the first object to be compared.

o2:T

the second object to be compared.

Returns:int

a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.