Package net.sf.saxon.expr.sort
Class UcaCollatorUsingJava
java.lang.Object
net.sf.saxon.expr.sort.UcaCollatorUsingJava
- All Implemented Interfaces:
StringCollator
,SubstringMatcher
This class implements (an approximation to) the UCA Collation Algorithm
relying solely on the built-in Java support (that is, without using the
ICU library). This provides a fallback implementation for Saxon-HE, and
it is used only when the collation URI does not include the option
fallback=no.
-
Constructor Summary
ConstructorsConstructorDescriptionUcaCollatorUsingJava
(String uri, Configuration config) Create a collation from a given collation URI -
Method Summary
Modifier and TypeMethodDescriptionboolean
comparesEqual
(UnicodeString s1, UnicodeString s2) Ask whether two strings are considered equal under this collationint
compareStrings
(UnicodeString o1, UnicodeString o2) Compare two strings for equality or ordering under the rules of this collationboolean
contains
(UnicodeString s1, UnicodeString s2) Test whether one string contains another, according to the rules of the XPath contains() functionboolean
endsWith
(UnicodeString s1, UnicodeString s2) Test whether one string ends with another, according to the rules of the XPath ends-with() functionGet a collation key that can be used as a proxy for strings being comparedGet the collation URI corresponding to this collationgetJavaCollationKey
(String source) Factory method to create a CollationKey that can be used as a proxy for string comparisons under this collationGet the properties of the collationGet the underlying Java Collator objectint
Get the strength of the collation (primary, secondary, tertiary, etc)int
hashCode()
Get a hash code used to compare two collations.void
setStrength
(int newStrength) Set the strength of the collation (primary, secondary, tertiary, etc)boolean
startsWith
(UnicodeString s1, UnicodeString s2) Test whether one string starts with another, according to the rules of the XPath starts-with() functionsubstringAfter
(UnicodeString s1, UnicodeString s2) Return the part of a string after a given substring, according to the rules of the XPath substring-after() functionReturn the part of a string before a given substring, according to the rules of the XPath substring-before() functionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.sf.saxon.lib.StringCollator
isEqualToEmpty
-
Constructor Details
-
UcaCollatorUsingJava
Create a collation from a given collation URI- Parameters:
uri
- the collation URI, in the format defined in the W3C Functions and Operators specificationconfig
- the Saxon Configuration, used for diagnostics- Throws:
XPathException
- if the collation URI does not conform to the W3C rules, or if it requires features that Saxon-HE does not support
-
-
Method Details
-
getRuleBasedCollator
Get the underlying Java Collator object- Returns:
- the underlying Java Collator
-
getJavaCollationKey
Factory method to create a CollationKey that can be used as a proxy for string comparisons under this collation- Parameters:
source
- the string whose CollationKey is required- Returns:
- a CollationKey with the property that two collation keys are equal (according
to its
Object.equals(Object)
method if their corresponding strings are considered to be equal under this collation
-
hashCode
public int hashCode()Get a hash code used to compare two collations. (Probably not used.) -
getProperties
Get the properties of the collation- Returns:
- the properties of the collation
-
setStrength
public void setStrength(int newStrength) Set the strength of the collation (primary, secondary, tertiary, etc)- Parameters:
newStrength
- the strength
-
getStrength
public int getStrength()Get the strength of the collation (primary, secondary, tertiary, etc)- Returns:
- the strength
-
comparesEqual
Ask whether two strings are considered equal under this collation- Specified by:
comparesEqual
in interfaceStringCollator
- Parameters:
s1
- the first strings2
- the second string- Returns:
- true if the strings are considered equal
-
getCollationURI
Get the collation URI corresponding to this collation- Specified by:
getCollationURI
in interfaceStringCollator
- Returns:
- the collation URI
-
compareStrings
Compare two strings for equality or ordering under the rules of this collation- Specified by:
compareStrings
in interfaceStringCollator
- Parameters:
o1
- the first stringo2
- the second string- Returns:
- -1, 0, or +1 according to the relative ordering of the strings
-
getCollationKey
Get a collation key that can be used as a proxy for strings being compared- Specified by:
getCollationKey
in interfaceStringCollator
- Parameters:
s
- the string whose collation key is required- Returns:
- a collation key
-
contains
Test whether one string contains another, according to the rules of the XPath contains() function- Specified by:
contains
in interfaceSubstringMatcher
- Parameters:
s1
- the containing strings2
- the contained string- Returns:
- true iff s1 contains s2
-
endsWith
Test whether one string ends with another, according to the rules of the XPath ends-with() function- Specified by:
endsWith
in interfaceSubstringMatcher
- Parameters:
s1
- the containing strings2
- the contained string- Returns:
- true iff s1 ends with s2
-
startsWith
Test whether one string starts with another, according to the rules of the XPath starts-with() function- Specified by:
startsWith
in interfaceSubstringMatcher
- Parameters:
s1
- the containing strings2
- the contained string- Returns:
- true iff s1 starts with s2
-
substringAfter
Return the part of a string after a given substring, according to the rules of the XPath substring-after() function- Specified by:
substringAfter
in interfaceSubstringMatcher
- Parameters:
s1
- the containing strings2
- the contained string- Returns:
- the part of s1 that follows the first occurrence of s2
-
substringBefore
Return the part of a string before a given substring, according to the rules of the XPath substring-before() function- Specified by:
substringBefore
in interfaceSubstringMatcher
- Parameters:
s1
- the containing strings2
- the contained string- Returns:
- the part of s1 that precedes the first occurrence of s2
-