public class DescendingComparer extends java.lang.Object implements AtomicComparer, java.io.Serializable
Constructor and Description |
---|
DescendingComparer(AtomicComparer base) |
Modifier and Type | Method and Description |
---|---|
int |
compareAtomicValues(AtomicValue a,
AtomicValue b)
Compare two objects.
|
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 (ascending) comparer
|
StringCollator |
getCollator()
Get the collation used by this AtomicComparer if any
|
AtomicComparer |
provideContext(XPathContext context)
Supply the dynamic context in case this is needed for the comparison
|
java.lang.String |
save()
Create a string representation of this AtomicComparer that can be saved in a compiled
package and used to reconstitute the AtomicComparer when the package is reloaded
|
public DescendingComparer(AtomicComparer base)
public AtomicComparer getBaseComparer()
public StringCollator getCollator()
AtomicComparer
getCollator
in interface AtomicComparer
public AtomicComparer provideContext(XPathContext context)
provideContext
in interface AtomicComparer
context
- the dynamic evaluation contextNoDynamicContextException
- if the context is an "early evaluation" (compile-time) contextpublic int compareAtomicValues(AtomicValue a, AtomicValue b) throws NoDynamicContextException
compareAtomicValues
in interface AtomicComparer
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.java.lang.ClassCastException
- if the objects are of the wrong type for this ComparerNoDynamicContextException
- if this comparer required access to dynamic context information,
notably the implicit timezone, and this information is not available. In general this happens if a
context-dependent comparison is attempted at compile-time, and it signals the compiler to generate
code that tries again at run-time.public boolean comparesEqual(AtomicValue a, AtomicValue b) throws NoDynamicContextException
comparesEqual
in interface AtomicComparer
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 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 comparableNoDynamicContextException
public java.lang.String save()
save
in interface AtomicComparer
Copyright (c) 2004-2018 Saxonica Limited. All rights reserved.