Class 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  
    • 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
    • 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