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

      • RuleBasedSubstringMatcher

        public RuleBasedSubstringMatcher​(java.lang.String uri,
                                         java.text.RuleBasedCollator collator)
        Create a RuleBasedSubstringMatcher
        Parameters:
        uri - the collation URI
        collator - the collation to be used
    • Method Detail

      • contains

        public boolean contains​(UnicodeString s1,
                                UnicodeString 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​(UnicodeString s1,
                                UnicodeString 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​(UnicodeString s1,
                                  UnicodeString 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 UnicodeString substringAfter​(UnicodeString s1,
                                            UnicodeString 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 UnicodeString substringBefore​(UnicodeString s1,
                                             UnicodeString 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​(UnicodeString s)
        Get a collation key for a String. The essential property of collation keys is that if (and only if) two strings are equal under the collation, then comparing the collation keys using the equals() method must return true.
        Specified by:
        getCollationKey in interface StringCollator
        Overrides:
        getCollationKey in class SimpleCollation
        Parameters:
        s - the string whose collation key is required
        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 - if any error occurs