Package net.sf.saxon.expr.sort

## Class AlphanumericCollator

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

- All Implemented Interfaces:
    `StringCollator`

      public class AlphanumericCollator
      extends java.lang.Object
      implements StringCollator

  A Comparer that treats strings as an alternating sequence of alpha parts and numeric parts. The alpha parts are compared using a base collation supplied as a parameter; the numeric parts are compared numerically. "Numeric" here means a sequence of consecutive ASCII digits 0-9.

  Note: this StringCollator produces an ordering that is not compatible with equals().

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `PREFIX` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AlphanumericCollator​(StringCollator base)` | Create an alphanumeric collation

  - ### 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 cs1, java.lang.CharSequence cs2)` | Compare two objects.
    `AtomicMatchKey` | `getCollationKey​(java.lang.CharSequence cs)` | Get a collation key for comparing two Strings.
    `java.lang.String` | `getCollationURI()` | Get the collation URI.

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

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

- - ### Field Detail

    - #### PREFIX

          public static final java.lang.String PREFIX

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### AlphanumericCollator

          public AlphanumericCollator​(StringCollator base)

      Create an alphanumeric collation
      Parameters:
        `base` - the collation used to compare the alphabetic parts of the string

  - ### 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 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 cs1,
                                    java.lang.CharSequence cs2)

      Compare two objects.
      Specified by:
        `compareStrings` in interface `StringCollator`
      Parameters:
        `cs1` - the first string
        `cs2` - the second string
      Returns:
        <0 if a<b, 0 if a=b, >0 if a>b

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

    - #### getCollationKey

          public AtomicMatchKey getCollationKey​(java.lang.CharSequence cs)

      Get a collation key for comparing two Strings. 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:
        `cs` - the string whose collation key is required
      Returns:
        the collation key