Package net.sf.saxon.expr.sort

## Class RuleBasedSubstringMatcher

- java.lang.Object
- - net.sf.saxon.expr.sort.SimpleCollation
  - - net.sf.saxon.expr.sort.RuleBasedSubstringMatcher

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

      public class RuleBasedSubstringMatcher
      extends SimpleCollation
      implements SubstringMatcher

  This class wraps a RuleBasedCollator to provide a SubstringMatcher. This users the facilities offered by the RuleBasedCollator to implement the XPath functions contains(), starts-with(), ends-with(), substring-before(), and substring-after().

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RuleBasedSubstringMatcher​(java.lang.String uri, java.text.RuleBasedCollator collator)` | Create a RuleBasedSubstringMatcher

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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 two Strings.
    `static void` | `main​(java.lang.String[] args)` | Test program to output the sequence of collation element iterators for a given input string
    `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 net.sf.saxon.expr.sort.SimpleCollation

      `comparesEqual, compareStrings, getCollationURI, getComparator, getSubstringMatcher, setComparator`

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

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

    - ### Methods inherited from interface net.sf.saxon.lib.StringCollator

      `comparesEqual, compareStrings, getCollationURI`

- - ### Constructor Detail

    - #### RuleBasedSubstringMatcher

          public RuleBasedSubstringMatcher​(java.lang.String uri,
                                           java.text.RuleBasedCollator collator)

      Create a RuleBasedSubstringMatcher
      Parameters:
        `uri` -
        `collator` - the collation to be used

  - ### Method Detail

    - #### 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 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`
      Overrides:
        `getCollationKey` in class `SimpleCollation`
      Parameters:
        `s` -
      Returns:
        the collation key

    - #### main

          public static void main​(java.lang.String[] args)
                           throws java.lang.Exception

      Test program to output the sequence of collation element iterators for a given input string
      Parameters:
        `args` - command line arguments (collationURI, test-string)
      Throws:
        `java.lang.Exception`