public class CollatingAtomicComparer extends Object implements AtomicComparer
Constructor and Description |
---|
CollatingAtomicComparer(StringCollator collator,
Platform platform)
Create an GenericAtomicComparer
|
Modifier and Type | Method and Description |
---|---|
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.
|
StringCollator |
getCollator()
Get the collation used by this AtomicComparer if any
|
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
|
public CollatingAtomicComparer(StringCollator collator, Platform platform)
collator
- the collation to be used. If the method is called at compile time, this should
be a SimpleCollation so that it can be cloned at run-time.platform
- used to obtain collation keys.public StringCollator getCollator()
AtomicComparer
getCollator
in interface AtomicComparer
public AtomicComparer provideContext(XPathContext context)
provideContext
in interface AtomicComparer
context
- the dynamic evaluation contextpublic int compareAtomicValues(AtomicValue a, AtomicValue b)
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.ClassCastException
- if the objects are not comparablepublic boolean comparesEqual(AtomicValue a, AtomicValue b)
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.ClassCastException
- if the objects are not comparablepublic ComparisonKey getComparisonKey(AtomicValue a)
getComparisonKey
in interface AtomicComparer
Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.