public class AtomicSortComparer extends java.lang.Object implements AtomicComparer
| Modifier and Type | Field and Description |
|---|---|
static StringValue |
COLLATION_KEY_NaN |
| Modifier and Type | Method and Description |
|---|---|
int |
compare(java.lang.Object a,
java.lang.Object b)
Compare two AtomicValue objects according to the rules for their data type.
|
boolean |
comparesEqual(AtomicValue a,
AtomicValue b)
Compare two AtomicValue objects for equality according to the rules for their data type.
|
ComparisonKey |
getComparisonKey(AtomicValue a)
Get a comparison key for an object.
|
static AtomicComparer |
makeSortComparer(java.util.Comparator collator,
int itemType,
XPathContext context)
Factory method to get an atomic comparer suitable for sorting or for grouping (operations in which
NaN is considered equal to NaN)
|
public static StringValue COLLATION_KEY_NaN
public static AtomicComparer makeSortComparer(java.util.Comparator collator, int itemType, XPathContext context)
collator - Collating comparer to be used when comparing stringsitemType - Primitive item type of the values to be comparedcontext - Dynamic context (may be an EarlyEvaluationContext)public int compare(java.lang.Object a,
java.lang.Object b)
compare in interface java.util.Comparatorcompare in interface AtomicComparera - the first object to be compared. It is intended that this should normally be an instance
of AtomicValue, though this restriction is not enforced. If it is a StringValue, the
collator is used to compare the values, otherwise the value must implement the java.util.Comparable
interface.b - the second object to be compared. This must be comparable with the first object: for
example, if one is a string, they must both be strings.java.lang.ClassCastException - if the objects are not comparablepublic boolean comparesEqual(AtomicValue a, AtomicValue b)
comparesEqual in interface AtomicComparera - the first object to be compared. It is intended that this should be an instance
of AtomicValue, though this restriction is not enforced. If it is a StringValue, the
collator is used to compare the values, otherwise the value must implement the equals() method.b - the second object to be compared. This must be comparable with the first object: for
example, if one is a string, they must both be strings.java.lang.ClassCastException - if the objects are not comparablepublic ComparisonKey getComparisonKey(AtomicValue a)
getComparisonKey in interface AtomicComparer