## net.sf.saxon.sort
Class RuleBasedSubstringMatcher

    java.lang.Object
      net.sf.saxon.sort.RuleBasedSubstringMatcher

All Implemented Interfaces:
  java.io.Serializable, StringCollator, SubstringMatcher

    public class RuleBasedSubstringMatcher

extends java.lang.Object
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().

See Also:
  Serialized Form

Constructor Summary
`RuleBasedSubstringMatcher(java.text.RuleBasedCollator collator)` Create a RuleBasedSubstringMatcher

Method Summary
`boolean` `comparesEqual(java.lang.String s1, java.lang.String s2)` Test whether one string is equal to another, according to the rules of the XPath compare() function.
`int` `compareStrings(java.lang.String o1, java.lang.String o2)` Compare two strings
`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
`java.lang.Object` `getCollationKey(java.lang.String 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 java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### RuleBasedSubstringMatcher

    public RuleBasedSubstringMatcher(java.text.RuleBasedCollator collator)

  Create a RuleBasedSubstringMatcher

  Parameters:
    `collator` - the collation to be used

Method Detail

### comparesEqual

    public boolean comparesEqual(java.lang.String s1,
                                 java.lang.String 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 `SubstringMatcher`
  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

### compareStrings

    public int compareStrings(java.lang.String o1,
                              java.lang.String o2)

  Compare two strings

  Specified by:
    `compareStrings` in interface `StringCollator`
  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

### getCollationKey

    public java.lang.Object getCollationKey(java.lang.String 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`
  Parameters:
    `s` - the string whose collation key is required
  Returns:
    the collation key

### main

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

  Test program to output the sequence of collation element iterators for a given input string

  Parameters:
    `args` - command line arguments (collationURI, test-string)

Copyright (c) Saxonica Limited. All rights reserved.