net.sf.saxon.expr.sort
Class RuleBasedSubstringMatcher

java.lang.Object
  extended by net.sf.saxon.expr.sort.RuleBasedSubstringMatcher
All Implemented Interfaces:
Serializable, StringCollator, SubstringMatcher

public class RuleBasedSubstringMatcher
extends 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(RuleBasedCollator collator)
          Create a RuleBasedSubstringMatcher
 
Method Summary
 boolean comparesEqual(String s1, String s2)
          Test whether one string is equal to another, according to the rules of the XPath compare() function.
 int compareStrings(String o1, String o2)
          Compare two strings
 boolean contains(String s1, String s2)
          Test whether one string contains another, according to the rules of the XPath contains() function
 boolean endsWith(String s1, String s2)
          Test whether one string ends with another, according to the rules of the XPath ends-with() function
 Object getCollationKey(String s)
          Get a collation key for two Strings.
 RuleBasedCollator getUnderlyingCollator()
          Get the underlying RuleBasedCollator
static void main(String[] args)
          Test program to output the sequence of collation element iterators for a given input string
 boolean startsWith(String s1, String s2)
          Test whether one string starts with another, according to the rules of the XPath starts-with() function
 String substringAfter(String s1, String s2)
          Return the part of a string after a given substring, according to the rules of the XPath substring-after() function
 String substringBefore(String s1, 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(RuleBasedCollator collator)
Create a RuleBasedSubstringMatcher

Parameters:
collator - the collation to be used
Method Detail

getUnderlyingCollator

public RuleBasedCollator getUnderlyingCollator()
Get the underlying RuleBasedCollator

Returns:
the RuleBasedCollator that does the work

comparesEqual

public boolean comparesEqual(String s1,
                             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 StringCollator
Parameters:
s1 - the first string
s2 - the second string
Returns:
true iff s1 equals s2

contains

public boolean contains(String s1,
                        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(String s1,
                        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(String s1,
                          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 String substringAfter(String s1,
                             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 String substringBefore(String s1,
                              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(String o1,
                          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 Object getCollationKey(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(String[] args)
                 throws 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:
Exception


Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.