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
public class SimpleCollation extends java.lang.Object implements StringCollator
A simple collation that just wraps a supplied Comparator
-
-
Constructor Summary
Constructors Constructor Description SimpleCollation(java.lang.String uri, java.util.Comparator<? super java.lang.String> comparator)Create a SimpleCollation
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancomparesEqual(UnicodeString s1, UnicodeString s2)Compare two strings for equality.intcompareStrings(UnicodeString o1, UnicodeString o2)Compares its two arguments for order.AtomicMatchKeygetCollationKey(UnicodeString s)Get a collation key for a String.java.lang.StringgetCollationURI()Get the collation URI.java.util.Comparator<? super java.lang.String>getComparator()Get the underlying comparatorSubstringMatchergetSubstringMatcher()If possible, get a collator capable of substring matching (in functions such as fn:contains()).voidsetComparator(java.util.Comparator<? super java.lang.String> comparator)Set the underlying comparator
-
-
-
Method Detail
-
getCollationURI
public java.lang.String getCollationURI()
Get the collation URI. It must be possible to use this collation URI to reconstitute the collation- Specified by:
getCollationURIin interfaceStringCollator- Returns:
- a collation URI that can be used to reconstruct the collation when an XSLT package is reloaded.
-
compareStrings
public int compareStrings(UnicodeString o1, UnicodeString o2)
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:
compareStringsin 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:
java.lang.ClassCastException- if the arguments' types prevent them from being compared by this Comparator.
-
comparesEqual
public boolean comparesEqual(UnicodeString s1, UnicodeString s2)
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:
comparesEqualin interfaceStringCollator- Parameters:
s1- the first strings2- the second string- Returns:
- true if and only if the strings are considered equal,
-
getComparator
public java.util.Comparator<? super java.lang.String> getComparator()
Get the underlying comparator- Returns:
- the underlying comparator
-
setComparator
public void setComparator(java.util.Comparator<? super java.lang.String> comparator)
Set the underlying comparator- Parameters:
comparator- the underlying comparator
-
getCollationKey
public AtomicMatchKey getCollationKey(UnicodeString s)
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:
getCollationKeyin interfaceStringCollator- Parameters:
s- the string whose collation key is required- Returns:
- the collation key
-
getSubstringMatcher
public SubstringMatcher 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
-
-