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 boolean
comparesEqual(java.lang.CharSequence s1, java.lang.CharSequence s2)
Compare two strings for equality.int
compareStrings(java.lang.CharSequence o1, java.lang.CharSequence o2)
Compares its two arguments for order.AtomicMatchKey
getCollationKey(java.lang.CharSequence s)
Get a collation key for a String.java.lang.String
getCollationURI()
Get the collation URI.java.util.Comparator
getComparator()
Get the underlying comparatorSubstringMatcher
getSubstringMatcher()
If possible, get a collator capable of substring matching (in functions such as fn:contains()).void
setComparator(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:
getCollationURI
in 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:
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:
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:
comparesEqual
in 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:
getCollationKey
in 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
-
-