Package net.sf.saxon.lib

## Interface StringCollator

- All Known Subinterfaces:
    `SubstringMatcher`
  All Known Implementing Classes:
    `AlphanumericCollator`, `CaseFirstCollator`, `CodepointCollator`, `HTML5CaseBlindCollator`, `RuleBasedSubstringMatcher`, `SimpleCollation`, `UcaCollatorUsingIcu`, `UcaCollatorUsingJava`

      public interface StringCollator

  This interface represents a "collation" as defined in XPath, that is, a set of rules for comparing strings

  Note: an implementation of this interface that wraps a Java `RuleBasedCollator` is available: see `RuleBasedSubstringMatcher`.

- - ### Method Summary

    All Methods Instance Methods Abstract 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)` | Compare two strings
    `AtomicMatchKey` | `getCollationKey​(java.lang.CharSequence s)` | Get a collation key for a String.
    `java.lang.String` | `getCollationURI()` | Get the collation URI.

- - ### Method Detail

    - #### getCollationURI

          java.lang.String getCollationURI()

      Get the collation URI. It must be possible to use this collation URI to reconstitute the collation
      Returns:
        a collation URI that can be used to reconstruct the collation when an XSLT package is reloaded.

    - #### compareStrings

          int compareStrings​(java.lang.CharSequence o1,
                             java.lang.CharSequence o2)

      Compare two strings
      Parameters:
        `o1` - the first string
        `o2` - the second string
      Returns:
        0 if the strings are considered equal, a negative integer if the first string is less than the second, a positive integer if the first string is greater than the second

    - #### comparesEqual

          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
      Parameters:
        `s1` - the first string
        `s2` - the second string
      Returns:
        true if and only if the strings are considered equal,

    - #### getCollationKey

          AtomicMatchKey getCollationKey​(java.lang.CharSequence s)

      Get a collation key for a String. The essential property of collation keys is that if (and only if) two strings are equal under the collation, then comparing the collation keys using the equals() method must return true.
      Parameters:
        `s` - the string whose collation key is required
      Returns:
        the collation key