|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.saxon.expr.sort.GenericAtomicComparer
public class GenericAtomicComparer
An AtomicComparer used for comparing atomic values of arbitrary item types. It encapsulates a Collator that is used when the values to be compared are strings. It also supports a separate method for testing equality of items, which can be used for data types that are not ordered.
Constructor Summary | |
---|---|
GenericAtomicComparer(StringCollator collator,
XPathContext conversionContext)
Create an GenericAtomicComparer |
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. |
StringCollator |
getCollator()
Get the collation used by this AtomicComparer if any |
ComparisonKey |
getComparisonKey(AtomicValue a)
Get a comparison key for an object. |
StringCollator |
getStringCollator()
Get the underlying string collator |
static AtomicComparer |
makeAtomicComparer(BuiltInAtomicType type0,
BuiltInAtomicType type1,
StringCollator collator,
XPathContext context)
Factory method to make a GenericAtomicComparer for values of known types |
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 |
Constructor Detail |
---|
public GenericAtomicComparer(StringCollator collator, XPathContext conversionContext)
collator
- the collation to be usedconversionContext
- a context, used when converting untyped atomic values to the target type.Method Detail |
---|
public static AtomicComparer makeAtomicComparer(BuiltInAtomicType type0, BuiltInAtomicType type1, StringCollator collator, XPathContext context)
type0
- primitive type of the first operandtype1
- primitive type of the second operandcollator
- the collation to be used, if any. This is supplied as a SimpleCollation object
which encapsulated both the collation URI and the collation itself.context
- the dynamic context
public StringCollator getCollator()
AtomicComparer
getCollator
in interface AtomicComparer
public AtomicComparer provideContext(XPathContext context)
provideContext
in interface AtomicComparer
context
- the dynamic evaluation context
public StringCollator getStringCollator()
public 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.
ClassCastException
- if the objects are not comparable
NoDynamicContextException
- 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. 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 comparable
NoDynamicContextException
public ComparisonKey getComparisonKey(AtomicValue a)
getComparisonKey
in interface AtomicComparer
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |