Package net.sf.saxon.expr.sort
Class SimpleCollation
java.lang.Object
net.sf.saxon.expr.sort.SimpleCollation
- All Implemented Interfaces:
StringCollator
- Direct Known Subclasses:
RuleBasedSubstringMatcher
A simple collation that just wraps a supplied Comparator
-
Constructor Summary
ConstructorsConstructorDescriptionSimpleCollation
(String uri, Comparator<? super String> comparator) Create a SimpleCollation -
Method Summary
Modifier and TypeMethodDescriptionboolean
comparesEqual
(UnicodeString s1, UnicodeString s2) Compare two strings for equality.int
compareStrings
(UnicodeString o1, UnicodeString o2) Compares its two arguments for order.Get a collation key for a String.Get the collation URI.Comparator
<? super String> Get the underlying comparatorIf possible, get a collator capable of substring matching (in functions such as fn:contains()).void
setComparator
(Comparator<? super String> comparator) Set the underlying comparatorMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.sf.saxon.lib.StringCollator
isEqualToEmpty
-
Constructor Details
-
SimpleCollation
Create a SimpleCollation- Parameters:
uri
- the collation URIcomparator
- the Comparator that does the actual string comparison
-
-
Method Details
-
getCollationURI
Get the collation URI. It must be possible to use this collation URI to reconstitute the collation- Specified by:
getCollationURI
in interfaceStringCollator
- Returns:
- a collation URI that can be used to reconstruct the collation when an XSLT package is reloaded.
-
compareStrings
Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.- Specified by:
compareStrings
in interfaceStringCollator
- Parameters:
o1
- the first object to be compared.o2
- the second object to be compared.- Returns:
- a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
- Throws:
ClassCastException
- if the arguments' types prevent them from being compared by this Comparator.
-
comparesEqual
Compare two strings for equality. This may be more efficient than using compareStrings and testing whether the result is zero, but it must give the same result- Specified by:
comparesEqual
in interfaceStringCollator
- Parameters:
s1
- the first strings2
- the second string- Returns:
- true if and only if the strings are considered equal,
-
getComparator
Get the underlying comparator- Returns:
- the underlying comparator
-
setComparator
Set the underlying comparator- Parameters:
comparator
- the underlying comparator
-
getCollationKey
Get a collation key for a String. The essential property of collation keys is that if two values are equal under the collation, then the collation keys are compare correctly under the equals() method.- Specified by:
getCollationKey
in interfaceStringCollator
- Parameters:
s
- the string whose collation key is required- Returns:
- the collation key
-
getSubstringMatcher
If possible, get a collator capable of substring matching (in functions such as fn:contains()).- Returns:
- a collator suitable for substring matching, or null if none is available
-