|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.saxon.expr.sort.CodepointCollatingComparer
public class CodepointCollatingComparer
An AtomicComparer used for comparing strings, untypedAtomic values, and URIs using the Unicode codepoint collation. A CodepointCollatingComparer is used when it is known in advance that both operands will be of these types, and when the collation is the unicode codepoint collation. This enables all conversions and promotions to be bypassed: the string values of both operands are simply extracted and passed to the collator for comparison.
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.
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. |
StringCollator |
getCollator()
Get the collation used by this AtomicComparer if any |
ComparisonKey |
getComparisonKey(AtomicValue a)
Get a comparison key for an object. |
static CodepointCollatingComparer |
getInstance()
Get the singular instance of this class |
AtomicComparer |
provideContext(XPathContext context)
Supply the dynamic context in case this is needed for the comparison |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
public static CodepointCollatingComparer getInstance()
public StringCollator getCollator()
AtomicComparer
getCollator
in interface AtomicComparer
public AtomicComparer provideContext(XPathContext context)
provideContext
in interface AtomicComparer
context
- the dynamic evaluation context
public int compareAtomicValues(AtomicValue a, AtomicValue b)
compareAtomicValues
in interface AtomicComparer
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.
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.
ClassCastException
- if either value is not xs:string or a subtypepublic ComparisonKey getComparisonKey(AtomicValue a)
getComparisonKey
in interface AtomicComparer
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |