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 comparator)Create a SimpleCollation
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancomparesEqual(java.lang.CharSequence s1, java.lang.CharSequence s2)Compare two strings for equality.intcompareStrings(java.lang.CharSequence o1, java.lang.CharSequence o2)Compares its two arguments for order.AtomicMatchKeygetCollationKey(java.lang.CharSequence s)Get a collation key for a String.java.lang.StringgetCollationURI()Get the collation URI.java.util.ComparatorgetComparator()Get the underlying comparatorSubstringMatchergetSubstringMatcher()If possible, get a collator capable of substring matching (in functions such as fn:contains()).voidsetComparator(java.util.Comparator 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(java.lang.CharSequence o1, java.lang.CharSequence 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(java.lang.CharSequence s1, java.lang.CharSequence 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 getComparator()
Get the underlying comparator- Returns:
- the underlying comparator
-
setComparator
public void setComparator(java.util.Comparator comparator)
Set the underlying comparator- Parameters:
comparator- the underlying comparator
-
getCollationKey
public AtomicMatchKey getCollationKey(java.lang.CharSequence 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-- 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
-
-