java.io.Serializable
, java.util.Comparator
, AtomicComparer
public class CodepointCollatingComparer extends java.lang.Object implements AtomicComparer
The difference between using this class and using the underlying CodepointCollator directly is that the compare() method in this class expects two instances of AtomicValue as its operands, whereas the underlying class expects two instances of java.lang.String. This class makes use of the extra information held in the wrapping StringValue object, specifically, the knowledge of whether the string contains surrogate pairs.
Modifier and Type | Method | 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.
|
ComparisonKey |
getComparisonKey(AtomicValue a) |
Get a comparison key for an object.
|
static CodepointCollatingComparer |
getInstance() |
public static CodepointCollatingComparer getInstance()
public int compare(java.lang.Object a, java.lang.Object b)
compare
in interface AtomicComparer
compare
in interface java.util.Comparator
a
- the first object to be compared. This must be either be an instance
of AtomicValue, or null to represent an empty sequence. Empty collates before non-empty.b
- the second object to be compared. This must be either be an instance
of AtomicValue, or null to represent an empty sequence.java.lang.ClassCastException
- if the objects are not comparablepublic boolean comparesEqual(AtomicValue a, AtomicValue b)
comparesEqual
in interface AtomicComparer
a
- the first object to be compared.b
- the second object to be compared.java.lang.ClassCastException
- if either value is not xs:string or a subtypepublic ComparisonKey getComparisonKey(AtomicValue a)
getComparisonKey
in interface AtomicComparer