net.sf.saxon.sort
public class EqualityComparer extends Object implements AtomicComparer
Field Summary | |
---|---|
static EqualityComparer | THE_INSTANCE |
Method Summary | |
---|---|
int | compareAtomicValues(AtomicValue a, AtomicValue 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 EqualityComparer | getInstance()
Get the singleton instance of this class |
AtomicComparer | provideContext(XPathContext context)
Supply the dynamic context in case this is needed for the comparison |
Parameters: a 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 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.
Returns: <0 if a0 if a>b
Throws: ClassCastException if the objects are not comparable
Parameters: a the first object to be compared. This must be an AtomicValue and it must implement equals() with context-free XPath comparison semantics b the second object to be compared. This must be an AtomicValue and it must implement equals() with context-free XPath comparison semantics
Returns: true if the values are equal, false if not
Throws: ClassCastException if the objects are not comparable
Returns: the singleton instance of this class
Parameters: context the dynamic evaluation context
Returns: either the original AtomicComparer, or a new AtomicComparer in which the context is known. The original AtomicComparer is not modified