Package net.sf.saxon.expr.sort

## Class CodepointCollator

- java.lang.Object
- - net.sf.saxon.expr.sort.CodepointCollator

- All Implemented Interfaces:
    `StringCollator`, `SubstringMatcher`

      public class CodepointCollator
      extends java.lang.Object
      implements StringCollator, SubstringMatcher

  A collating sequence that uses Unicode codepoint ordering

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CodepointCollator()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static int` | `compareCS​(java.lang.CharSequence a, java.lang.CharSequence b)` | Compare two CharSequence objects.
    `boolean` | `comparesEqual​(java.lang.CharSequence s1, java.lang.CharSequence s2)` | Test whether one string is equal to another, according to the rules of the XPath compare() function.
    `int` | `compareStrings​(java.lang.CharSequence a, java.lang.CharSequence b)` | Compare two string objects.
    `boolean` | `contains​(java.lang.String s1, java.lang.String s2)` | Test whether one string contains another, according to the rules of the XPath contains() function
    `boolean` | `endsWith​(java.lang.String s1, java.lang.String s2)` | Test whether one string ends with another, according to the rules of the XPath ends-with() function
    `AtomicMatchKey` | `getCollationKey​(java.lang.CharSequence s)` | Get a collation key for a string.
    `java.lang.String` | `getCollationURI()` | Get the collation URI.
    `static CodepointCollator` | `getInstance()` |
    `boolean` | `startsWith​(java.lang.String s1, java.lang.String s2)` | Test whether one string starts with another, according to the rules of the XPath starts-with() function
    `java.lang.String` | `substringAfter​(java.lang.String s1, java.lang.String s2)` | Return the part of a string after a given substring, according to the rules of the XPath substring-after() function
    `java.lang.String` | `substringBefore​(java.lang.String s1, java.lang.String s2)` | Return the part of a string before a given substring, according to the rules of the XPath substring-before() function

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CodepointCollator

          public CodepointCollator()

  - ### Method Detail

    - #### getInstance

          public static CodepointCollator getInstance()

    - #### 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 interface `StringCollator`
      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 a,
                                    java.lang.CharSequence b)

      Compare two string objects.
      Specified by:
        `compareStrings` in interface `StringCollator`
      Parameters:
        `a` - the first string
        `b` - the second string
      Returns:
        N < 0 if a < b, N = 0 if a=b, N > 0 if a > b
      Throws:
        `java.lang.ClassCastException` - if the objects are of the wrong type for this Comparer

    - #### compareCS

          public static int compareCS​(java.lang.CharSequence a,
                                      java.lang.CharSequence b)

      Compare two CharSequence objects. This is hand-coded to avoid converting the objects into Strings.
      Returns:
        N < 0 if a < b, N = 0 if a=b, N > 0 if a > b
      Throws:
        `java.lang.ClassCastException` - if the objects are of the wrong type for this Comparer

    - #### comparesEqual

          public boolean comparesEqual​(java.lang.CharSequence s1,
                                       java.lang.CharSequence s2)

      Test whether one string is equal to another, according to the rules of the XPath compare() function. The result is true if and only if the compare() method returns zero: but the implementation may be more efficient than calling compare and testing the result for zero
      Specified by:
        `comparesEqual` in interface `StringCollator`
      Parameters:
        `s1` - the first string
        `s2` - the second string
      Returns:
        true iff s1 equals s2

    - #### contains

          public boolean contains​(java.lang.String s1,
                                  java.lang.String s2)

      Test whether one string contains another, according to the rules of the XPath contains() function
      Specified by:
        `contains` in interface `SubstringMatcher`
      Parameters:
        `s1` - the containing string
        `s2` - the contained string
      Returns:
        true iff s1 contains s2

    - #### endsWith

          public boolean endsWith​(java.lang.String s1,
                                  java.lang.String s2)

      Test whether one string ends with another, according to the rules of the XPath ends-with() function
      Specified by:
        `endsWith` in interface `SubstringMatcher`
      Parameters:
        `s1` - the containing string
        `s2` - the contained string
      Returns:
        true iff s1 ends with s2

    - #### startsWith

          public boolean startsWith​(java.lang.String s1,
                                    java.lang.String s2)

      Test whether one string starts with another, according to the rules of the XPath starts-with() function
      Specified by:
        `startsWith` in interface `SubstringMatcher`
      Parameters:
        `s1` - the containing string
        `s2` - the contained string
      Returns:
        true iff s1 starts with s2

    - #### substringAfter

          public java.lang.String substringAfter​(java.lang.String s1,
                                                 java.lang.String s2)

      Return the part of a string after a given substring, according to the rules of the XPath substring-after() function
      Specified by:
        `substringAfter` in interface `SubstringMatcher`
      Parameters:
        `s1` - the containing string
        `s2` - the contained string
      Returns:
        the part of s1 that follows the first occurrence of s2

    - #### substringBefore

          public java.lang.String substringBefore​(java.lang.String s1,
                                                  java.lang.String s2)

      Return the part of a string before a given substring, according to the rules of the XPath substring-before() function
      Specified by:
        `substringBefore` in interface `SubstringMatcher`
      Parameters:
        `s1` - the containing string
        `s2` - the contained string
      Returns:
        the part of s1 that precedes the first occurrence of s2

    - #### 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 interface `StringCollator`
      Parameters:
        `s` - the string whose collation key is required
      Returns:
        the collation key