net.sf.saxon.sort
public class EmptyGreatestComparer extends Object implements AtomicComparer, Serializable
Constructor Summary | |
---|---|
EmptyGreatestComparer(AtomicComparer baseComparer)
Create an EmptyGreatestComparer |
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. |
AtomicComparer | getBaseComparer()
Get the underlying comparer (which compares empty least) |
ComparisonKey | getComparisonKey(AtomicValue a)
Get a comparison key for an object. |
AtomicComparer | provideContext(XPathContext context)
Supply the dynamic context in case this is needed for the comparison |
Parameters: baseComparer the comparer used to compare non-empty values (which typically sorts empty as least)
Parameters: a 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.
Returns: <0 if a0 if a>b
Throws: ClassCastException if the objects are not comparable
Parameters: a the first object to be compared. b the second object to be compared.
Returns: true if the values are equal, false if not
Throws: ClassCastException if the objects are not comparable
Returns: the base comparer
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