Top Description Fields Constructors Methods
org.eclipse.xtext.xbase.lib.internal

public final Class KeyComparator<T, C extends Comparable<? super C>>

extends Object
implements Comparator<T>
Class Inheritance
All Implemented Interfaces
java.util.Comparator
Annotations
@GwtCompatible
Type Parameters
<T>
the type to compare
<C>
the type of the comparable key
Static Imports
com.google.common.base.Preconditions.*

A comparator that compares objects by calling the supplied key function on them and then comparing the resulting keys. It is null-safe if the key's compareTo method is null-safe.

Field Summary

Modifier and TypeField and Description
private final Functions.Function1<? super T, C>

Constructor Summary

AccessConstructor and Description
public
KeyComparator(Functions.Function1<? super T, C>
the key function to use for comparing objects. May not be null
keyFunction
)

Method Summary

Modifier and TypeMethod and Description
public int
compare(T a, T b)

Implements java.util.Comparator.compare.

Compares its two arguments for order.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

keyFunctionback to summary
private final Functions.Function1<? super T, C> keyFunction

Constructor Detail

KeyComparatorback to summary
public KeyComparator(Functions.Function1<? super T, C> keyFunction)
Parameters
keyFunction:Functions.Function1<? super T, C>

the key function to use for comparing objects. May not be null

Method Detail

compareback to summary
public int compare(T a, T b)

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.

Annotations
@Override