Class RuleBasedSubstringMatcher

  • All Implemented Interfaces:
    java.util.Comparator, 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().
    • Constructor Summary

      Constructors 
      Constructor Description
      RuleBasedSubstringMatcher​(java.text.RuleBasedCollator collator)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compare​(java.lang.Object o1, java.lang.Object o2)
      Compares its two arguments for order.
      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.
      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
      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
      • Methods inherited from interface java.util.Comparator

        equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
    • Constructor Detail

      • RuleBasedSubstringMatcher

        public RuleBasedSubstringMatcher​(java.text.RuleBasedCollator collator)
    • 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
      • compare

        public int compare​(java.lang.Object o1,
                           java.lang.Object o2)
        Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

        The implementor must ensure that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an exception.)

        The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.

        Finally, the implementer must ensure that compare(x, y)==0 implies that sgn(compare(x, z))==sgn(compare(y, z)) for all z.

        It is generally the case, but not strictly required that (compare(x, y)==0) == (x.equals(y)). Generally speaking, any comparator that violates this condition should clearly indicate this fact. The recommended language is "Note: this comparator imposes orderings that are inconsistent with equals."

        Specified by:
        compare in interface java.util.Comparator
        Parameters:
        o1 - the first object to be compared.
        o2 - the second object to be compared.
        Returns:
        a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
        Throws:
        java.lang.ClassCastException - if the arguments' types prevent them from being compared by this Comparator.
      • main

        public static void main​(java.lang.String[] args)
        Test program to output the sequence of collation element iterators for a given input string