Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-release > by-pkgid > 280da2a01a3d16776505ea3f476de84f > files > 129

icu-doc-3.8.1-2mdv2008.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>ICU 3.8: RuleBasedCollator Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.1 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
  </ul></div>
<h1>RuleBasedCollator Class Reference</h1><!-- doxytag: class="RuleBasedCollator" --><!-- doxytag: inherits="Collator" -->The <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> class provides the simple implementation of <a class="el" href="classCollator.html">Collator</a>, using data-driven tables.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="tblcoll_8h-source.html">tblcoll.h</a>&gt;</code>
<p>
<p>Inheritance diagram for RuleBasedCollator:
<p><center><img src="classRuleBasedCollator.png" usemap="#RuleBasedCollator_map" border="0" alt=""></center>
<map name="RuleBasedCollator_map">
<area href="classCollator.html" alt="Collator" shape="rect" coords="0,112,116,136">
<area href="classUObject.html" alt="UObject" shape="rect" coords="0,56,116,80">
<area href="classUMemory.html" alt="UMemory" shape="rect" coords="0,0,116,24">
</map>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#685723bd1b8a2df19350e5d8dce24c82">RuleBasedCollator</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;rules, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> constructor.  <a href="#685723bd1b8a2df19350e5d8dce24c82"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#cef0c60403fc780975d265cc6d52e3db">RuleBasedCollator</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;rules, <a class="el" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a> collationStrength, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> constructor.  <a href="#cef0c60403fc780975d265cc6d52e3db"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#aae0055ec92464409909fbdd0c7ac589">RuleBasedCollator</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;rules, <a class="el" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a> decompositionMode, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> constructor.  <a href="#aae0055ec92464409909fbdd0c7ac589"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#b22f30328e5abbb779b0a7c03b01e09a">RuleBasedCollator</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;rules, <a class="el" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a> collationStrength, <a class="el" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a> decompositionMode, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> constructor.  <a href="#b22f30328e5abbb779b0a7c03b01e09a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#3b002ad7d57e54e1a75d9c6fc7d9c5d5">RuleBasedCollator</a> (const <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> &amp;other)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor.  <a href="#3b002ad7d57e54e1a75d9c6fc7d9c5d5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#8422ec09bd4b623a3bff4e09c80a28cc">RuleBasedCollator</a> (const <a class="el" href="pwin32_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *bin, <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a class="el" href="ucnv_8h.html#2b811fa5f6e9b580fa0122d38e9849b5">length</a>, const <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> *base, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Opens a collator from a collator binary image created using cloneBinary.  <a href="#8422ec09bd4b623a3bff4e09c80a28cc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#2a080eeab83d1864d481fb45c6b82a59">~RuleBasedCollator</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor.  <a href="#2a080eeab83d1864d481fb45c6b82a59"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#45ad21c50ac6d159d119d2c3a6dcd425">operator=</a> (const <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> &amp;other)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator.  <a href="#45ad21c50ac6d159d119d2c3a6dcd425"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#270d4f6ee757818e2ae675df1c8f0238">operator==</a> (const <a class="el" href="classCollator.html">Collator</a> &amp;other) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if argument is the same as this object.  <a href="#270d4f6ee757818e2ae675df1c8f0238"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#b8ec2d43525f62148b627dc936f892b7">operator!=</a> (const <a class="el" href="classCollator.html">Collator</a> &amp;other) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if argument is not the same as this object.  <a href="#b8ec2d43525f62148b627dc936f892b7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classCollator.html">Collator</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#fc3925de9f5b4b8c58192721cbb5bc57">clone</a> (void) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Makes a deep copy of the object.  <a href="#fc3925de9f5b4b8c58192721cbb5bc57"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classCollationElementIterator.html">CollationElementIterator</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#21ed64e0bf1796dc401f2bd92457f3d3">createCollationElementIterator</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;source) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a collation element iterator for the source string.  <a href="#21ed64e0bf1796dc401f2bd92457f3d3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classCollationElementIterator.html">CollationElementIterator</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#8bc7101af64b85406d7892d01a5ba29b">createCollationElementIterator</a> (const <a class="el" href="classCharacterIterator.html">CharacterIterator</a> &amp;source) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a collation element iterator for the source.  <a href="#8bc7101af64b85406d7892d01a5ba29b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classCollator.html#05f22f81363f2613bea18a632b67686f">EComparisonResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#49b2017fd4861a6361e6b568d887adc2">compare</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;source, const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;target) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compares a range of character data stored in two different strings based on the collation rules.  <a href="#49b2017fd4861a6361e6b568d887adc2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="ucol_8h.html#8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#b011371ceb1f45df5de1a458d7612aa8">compare</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;source, const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;target, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The comparison function compares the character data stored in two different strings.  <a href="#b011371ceb1f45df5de1a458d7612aa8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classCollator.html#05f22f81363f2613bea18a632b67686f">EComparisonResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#4c013af7a29d4b307be548dfc631f65c">compare</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;source, const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;target, <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a class="el" href="ucnv_8h.html#2b811fa5f6e9b580fa0122d38e9849b5">length</a>) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compares a range of character data stored in two different strings based on the collation rules up to the specified length.  <a href="#4c013af7a29d4b307be548dfc631f65c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="ucol_8h.html#8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#1acb41e02ed136ecda2441796b727271">compare</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;source, const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;target, <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a class="el" href="ucnv_8h.html#2b811fa5f6e9b580fa0122d38e9849b5">length</a>, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Does the same thing as compare but limits the comparison to a specified length.  <a href="#1acb41e02ed136ecda2441796b727271"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classCollator.html#05f22f81363f2613bea18a632b67686f">EComparisonResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#522f1279a6f70a1e94564f669ae4d410">compare</a> (const UChar *source, <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> sourceLength, const UChar *target, <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> targetLength) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The comparison function compares the character data stored in two different string arrays.  <a href="#522f1279a6f70a1e94564f669ae4d410"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="ucol_8h.html#8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#6d410b9e3a7a3c353ca961ffbe6f5fdb">compare</a> (const UChar *source, <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> sourceLength, const UChar *target, <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> targetLength, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The comparison function compares the character data stored in two different string arrays.  <a href="#6d410b9e3a7a3c353ca961ffbe6f5fdb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classCollationKey.html">CollationKey</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#509690ecc2c4de4683cc226b4317174f">getCollationKey</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;source, <a class="el" href="classCollationKey.html">CollationKey</a> &amp;key, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transforms a specified region of the string into a series of characters that can be compared with CollationKey.compare.  <a href="#509690ecc2c4de4683cc226b4317174f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classCollationKey.html">CollationKey</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#36b0939e2dfb7c47fef177e0eec93700">getCollationKey</a> (const UChar *source, <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> sourceLength, <a class="el" href="classCollationKey.html">CollationKey</a> &amp;key, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transforms a specified region of the string into a series of characters that can be compared with CollationKey.compare.  <a href="#36b0939e2dfb7c47fef177e0eec93700"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#326891c5ae3763fab6e8e00b2289a413">hashCode</a> (void) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates the hash code for the rule-based collation object.  <a href="#326891c5ae3763fab6e8e00b2289a413"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classLocale.html">Locale</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#3d00b511fe6fc791bdf728c50a98c45c">getLocale</a> (<a class="el" href="uloc_8h.html#df053345d343f8d82ae080f7a5871f34">ULocDataLocaleType</a> type, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the locale of the <a class="el" href="classCollator.html">Collator</a>.  <a href="#3d00b511fe6fc791bdf728c50a98c45c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#88b7cf04ca345ea2b17199905b869ccd">getRules</a> (void) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the table-based rules for the collation object.  <a href="#88b7cf04ca345ea2b17199905b869ccd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#c3e91383098974cd3cd4db490b5b7dcd">getVersion</a> (<a class="el" href="uversion_8h.html#61caef96ba86d8e86a4031925ea44e94">UVersionInfo</a> info) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the version information for a <a class="el" href="classCollator.html">Collator</a>.  <a href="#c3e91383098974cd3cd4db490b5b7dcd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#986a615000a5828dbbddecd0a151f4ab">getMaxExpansion</a> (<a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> order) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the maximum length of any expansion sequences that end with the specified comparison order.  <a href="#986a615000a5828dbbddecd0a151f4ab"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="utypes_8h.html#22af10545208a455a6e884008df48e9f">UClassID</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#475f2ae0796fc004c76c10d30b991ca5">getDynamicClassID</a> (void) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a unique class ID POLYMORPHICALLY.  <a href="#475f2ae0796fc004c76c10d30b991ca5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="pwin32_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#76f0c6651087f795e934ecba2357be36">cloneRuleData</a> (<a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> &amp;<a class="el" href="ucnv_8h.html#2b811fa5f6e9b580fa0122d38e9849b5">length</a>, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the binary format of the class's rules.  <a href="#76f0c6651087f795e934ecba2357be36"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#b4471befc42bf436cb771cef6b184ab7">cloneBinary</a> (<a class="el" href="pwin32_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *buffer, <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> capacity, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a binary image of a collator.  <a href="#b4471befc42bf436cb771cef6b184ab7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#49272a769d004665e981226e34859154">getRules</a> (<a class="el" href="ucol_8h.html#46363290036b8dffd6862c35e7b5872f">UColRuleOption</a> delta, <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;buffer)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns current rules.  <a href="#49272a769d004665e981226e34859154"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#c1817cbafe92cd3184d8712a8b72d746">setAttribute</a> (<a class="el" href="ucol_8h.html#583fbe7fc4a850e2fcc692e766d2826c">UColAttribute</a> attr, <a class="el" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a> value, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Universal attribute setter.  <a href="#c1817cbafe92cd3184d8712a8b72d746"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#4b104673bfec94c58f91478f14bcd286">getAttribute</a> (<a class="el" href="ucol_8h.html#583fbe7fc4a850e2fcc692e766d2826c">UColAttribute</a> attr, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Universal attribute getter.  <a href="#4b104673bfec94c58f91478f14bcd286"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="pwin32_8h.html#435d1572bf3f880d55459d9805097f62">uint32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#1049c65c7c51c9540ca91bae25bf9f54">setVariableTop</a> (const UChar *varTop, <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> len, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the variable top to a collation element value of a string supplied.  <a href="#1049c65c7c51c9540ca91bae25bf9f54"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="pwin32_8h.html#435d1572bf3f880d55459d9805097f62">uint32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#828496b246626823fd96abe7dcf86782">setVariableTop</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> varTop, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the variable top to a collation element value of a string supplied.  <a href="#828496b246626823fd96abe7dcf86782"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#da7dd7ac546e91febadd47c68df9c102">setVariableTop</a> (const <a class="el" href="pwin32_8h.html#435d1572bf3f880d55459d9805097f62">uint32_t</a> varTop, <a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the variable top to a collation element value supplied.  <a href="#da7dd7ac546e91febadd47c68df9c102"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="pwin32_8h.html#435d1572bf3f880d55459d9805097f62">uint32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#9ca19126249015219dcfea19339d2e5b">getVariableTop</a> (<a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the variable top value of a <a class="el" href="classCollator.html">Collator</a>.  <a href="#9ca19126249015219dcfea19339d2e5b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classUnicodeSet.html">UnicodeSet</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#40d5958bd18ed0da6baf0324c37769a5">getTailoredSet</a> (<a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get an <a class="el" href="classUnicodeSet.html">UnicodeSet</a> that contains all the characters and sequences tailored in this collator.  <a href="#40d5958bd18ed0da6baf0324c37769a5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classCollator.html">Collator</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#b58b1bbb98649f03131fe8b4dcd7b109">safeClone</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Thread safe cloning operation.  <a href="#b58b1bbb98649f03131fe8b4dcd7b109"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#572804441daa3ff64895a75b87991369">getSortKey</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;source, <a class="el" href="pwin32_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *result, <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> resultLength) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the sort key as an array of bytes from an <a class="el" href="classUnicodeString.html">UnicodeString</a>.  <a href="#572804441daa3ff64895a75b87991369"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#9c185650b038aa1d64f01dbc6fdfbfbb">getSortKey</a> (const UChar *source, <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> sourceLength, <a class="el" href="pwin32_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *result, <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> resultLength) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the sort key as an array of bytes from an UChar buffer.  <a href="#9c185650b038aa1d64f01dbc6fdfbfbb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#4687629722826dd02625049df0dcff2f">getStrength</a> (void) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determines the minimum strength that will be use in comparison or transformation.  <a href="#4687629722826dd02625049df0dcff2f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#124ab414f1dc23cb3a5acc3f61e6a2d2">setStrength</a> (<a class="el" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a> newStrength)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the minimum strength to be used in comparison or transformation.  <a href="#124ab414f1dc23cb3a5acc3f61e6a2d2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="ucol_8h.html#3c4eeb412a5fd72762e6245aa75ca081">UCollator</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#6333a2d290fb5e3d005c60ebcd4a89e0">getUCollator</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get UCollator data struct.  <a href="#6333a2d290fb5e3d005c60ebcd4a89e0"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="utypes_8h.html#22af10545208a455a6e884008df48e9f">UClassID</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#0662ee51db5ee4ddb20ccd0aade72423">getStaticClassID</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the class ID for this class.  <a href="#0662ee51db5ee4ddb20ccd0aade72423"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#24185345cc10b9fa5b167dae836e9aab">setLocales</a> (const <a class="el" href="classLocale.html">Locale</a> &amp;requestedLocale, const <a class="el" href="classLocale.html">Locale</a> &amp;validLocale)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used internally by registraton to define the requested and valid locales.  <a href="#24185345cc10b9fa5b167dae836e9aab"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2493a8a45ec3ae69e1bec8355c948519"></a><!-- doxytag: member="RuleBasedCollator::CollationElementIterator" ref="2493a8a45ec3ae69e1bec8355c948519" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#2493a8a45ec3ae69e1bec8355c948519">CollationElementIterator</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to iterate over collation elements in a character source. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f22e5ffabbf5a2d4d729daa0b5d3cafd"></a><!-- doxytag: member="RuleBasedCollator::Collator" ref="f22e5ffabbf5a2d4d729daa0b5d3cafd" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#f22e5ffabbf5a2d4d729daa0b5d3cafd">Collator</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classCollator.html">Collator</a> ONLY needs access to <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a>(const <a class="el" href="classLocale.html">Locale</a>&amp;, UErrorCode&amp;). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="421a131b6330b132d67ac9582acb9886"></a><!-- doxytag: member="RuleBasedCollator::StringSearch" ref="421a131b6330b132d67ac9582acb9886" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#421a131b6330b132d67ac9582acb9886">StringSearch</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searching over collation elements in a character source. <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> class provides the simple implementation of <a class="el" href="classCollator.html">Collator</a>, using data-driven tables. 
<p>
The user can create a customized table-based collation. <p>
<em>Important: </em>The ICU collation service has been reimplemented in order to achieve better performance and UCA compliance. For details, see the <a href="http://source.icu-project.org/repos/icu/icuhtml/trunk/design/collation/ICU_collation_design.htm">collation design document</a>. <p>
<a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> is a thin C++ wrapper over the C implementation. <p>
For more information about the collation service see <a href="http://icu-project.org/userguide/Collate_Intro.html">the users guide</a>. <p>
Collation service provides correct sorting orders for most locales supported in ICU. If specific data for a locale is not available, the orders eventually falls back to the <a href="http://www.unicode.org/unicode/reports/tr10/">UCA sort order</a>. <p>
Sort ordering may be customized by providing your own set of rules. For more on this subject see the <a href="http://icu-project.org/userguide/Collate_Customization.html">Collation customization</a> section of the users guide. <p>
Note, <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> is not to be subclassed. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classCollator.html">Collator</a> </dd></dl>
<dl class="version" compact><dt><b>Version:</b></dt><dd>2.0 11/15/2001 </dd></dl>

<p>

<p>
Definition at line <a class="el" href="tblcoll_8h-source.html#l00110">110</a> of file <a class="el" href="tblcoll_8h-source.html">tblcoll.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="685723bd1b8a2df19350e5d8dce24c82"></a><!-- doxytag: member="RuleBasedCollator::RuleBasedCollator" ref="685723bd1b8a2df19350e5d8dce24c82" args="(const UnicodeString &amp;rules, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RuleBasedCollator::RuleBasedCollator           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rules</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> constructor. 
<p>
This takes the table rules and builds a collation table out of them. Please see <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> class description for more details on the collation rule syntax. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>rules</em>&nbsp;</td><td>the collation rules to build the collation table from. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>reporting a success or an error. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classLocale.html">Locale</a> </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002790">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="cef0c60403fc780975d265cc6d52e3db"></a><!-- doxytag: member="RuleBasedCollator::RuleBasedCollator" ref="cef0c60403fc780975d265cc6d52e3db" args="(const UnicodeString &amp;rules, ECollationStrength collationStrength, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RuleBasedCollator::RuleBasedCollator           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rules</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a>&nbsp;</td>
          <td class="paramname"> <em>collationStrength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> constructor. 
<p>
This takes the table rules and builds a collation table out of them. Please see <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> class description for more details on the collation rule syntax. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>rules</em>&nbsp;</td><td>the collation rules to build the collation table from. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>collationStrength</em>&nbsp;</td><td>default strength for comparison </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>reporting a success or an error. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classLocale.html">Locale</a> </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002791">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="aae0055ec92464409909fbdd0c7ac589"></a><!-- doxytag: member="RuleBasedCollator::RuleBasedCollator" ref="aae0055ec92464409909fbdd0c7ac589" args="(const UnicodeString &amp;rules, UColAttributeValue decompositionMode, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RuleBasedCollator::RuleBasedCollator           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rules</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a>&nbsp;</td>
          <td class="paramname"> <em>decompositionMode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> constructor. 
<p>
This takes the table rules and builds a collation table out of them. Please see <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> class description for more details on the collation rule syntax. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>rules</em>&nbsp;</td><td>the collation rules to build the collation table from. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>decompositionMode</em>&nbsp;</td><td>the normalisation mode </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>reporting a success or an error. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classLocale.html">Locale</a> </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002792">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="b22f30328e5abbb779b0a7c03b01e09a"></a><!-- doxytag: member="RuleBasedCollator::RuleBasedCollator" ref="b22f30328e5abbb779b0a7c03b01e09a" args="(const UnicodeString &amp;rules, ECollationStrength collationStrength, UColAttributeValue decompositionMode, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RuleBasedCollator::RuleBasedCollator           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rules</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a>&nbsp;</td>
          <td class="paramname"> <em>collationStrength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a>&nbsp;</td>
          <td class="paramname"> <em>decompositionMode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> constructor. 
<p>
This takes the table rules and builds a collation table out of them. Please see <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> class description for more details on the collation rule syntax. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>rules</em>&nbsp;</td><td>the collation rules to build the collation table from. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>collationStrength</em>&nbsp;</td><td>default strength for comparison </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>decompositionMode</em>&nbsp;</td><td>the normalisation mode </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>reporting a success or an error. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classLocale.html">Locale</a> </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002793">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="3b002ad7d57e54e1a75d9c6fc7d9c5d5"></a><!-- doxytag: member="RuleBasedCollator::RuleBasedCollator" ref="3b002ad7d57e54e1a75d9c6fc7d9c5d5" args="(const RuleBasedCollator &amp;other)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RuleBasedCollator::RuleBasedCollator           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy constructor. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>other</em>&nbsp;</td><td>the <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> object to be copied </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classLocale.html">Locale</a> </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002794">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="8422ec09bd4b623a3bff4e09c80a28cc"></a><!-- doxytag: member="RuleBasedCollator::RuleBasedCollator" ref="8422ec09bd4b623a3bff4e09c80a28cc" args="(const uint8_t *bin, int32_t length, const RuleBasedCollator *base, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RuleBasedCollator::RuleBasedCollator           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="pwin32_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&nbsp;</td>
          <td class="paramname"> <em>bin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> *&nbsp;</td>
          <td class="paramname"> <em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Opens a collator from a collator binary image created using cloneBinary. 
<p>
Binary image used in instantiation of the collator remains owned by the user and should stay around for the lifetime of the collator. The API also takes a base collator which usualy should be UCA. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>bin</em>&nbsp;</td><td>binary image owned by the user and required through the lifetime of the collator </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>size of the image. If negative, the API will try to figure out the length of the image </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>base</em>&nbsp;</td><td>fallback collator, usually UCA. Base is required to be present through the lifetime of the collator. Currently it cannot be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>for catching errors </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>newly created collator </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classRuleBasedCollator.html#b4471befc42bf436cb771cef6b184ab7">cloneBinary</a> </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002795">Stable:</a></b></dt><dd>ICU 3.4 </dd></dl>

</div>
</div><p>
<a class="anchor" name="2a080eeab83d1864d481fb45c6b82a59"></a><!-- doxytag: member="RuleBasedCollator::~RuleBasedCollator" ref="2a080eeab83d1864d481fb45c6b82a59" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual RuleBasedCollator::~RuleBasedCollator           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor. 
<p>
<dl compact><dt><b><a class="el" href="stable.html#_stable002796">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="45ad21c50ac6d159d119d2c3a6dcd425"></a><!-- doxytag: member="RuleBasedCollator::operator=" ref="45ad21c50ac6d159d119d2c3a6dcd425" args="(const RuleBasedCollator &amp;other)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a>&amp; RuleBasedCollator::operator=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Assignment operator. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>other</em>&nbsp;</td><td>other <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> object to compare with. </td></tr>
  </table>
</dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002797">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="270d4f6ee757818e2ae675df1c8f0238"></a><!-- doxytag: member="RuleBasedCollator::operator==" ref="270d4f6ee757818e2ae675df1c8f0238" args="(const Collator &amp;other) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a> RuleBasedCollator::operator==           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCollator.html">Collator</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if argument is the same as this object. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>other</em>&nbsp;</td><td><a class="el" href="classCollator.html">Collator</a> object to be compared. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if arguments is the same as this object. </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002798">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>
Reimplemented from <a class="el" href="classCollator.html#58fa13068a2e4e07a8835f6c0f8c18b6">Collator</a>.
</div>
</div><p>
<a class="anchor" name="b8ec2d43525f62148b627dc936f892b7"></a><!-- doxytag: member="RuleBasedCollator::operator!=" ref="b8ec2d43525f62148b627dc936f892b7" args="(const Collator &amp;other) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a> RuleBasedCollator::operator!=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCollator.html">Collator</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if argument is not the same as this object. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>other</em>&nbsp;</td><td><a class="el" href="classCollator.html">Collator</a> object to be compared </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns true if argument is not the same as this object. </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002799">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>
Reimplemented from <a class="el" href="classCollator.html#8c79adc0d04be5a7b82ac1991d445909">Collator</a>.
</div>
</div><p>
<a class="anchor" name="fc3925de9f5b4b8c58192721cbb5bc57"></a><!-- doxytag: member="RuleBasedCollator::clone" ref="fc3925de9f5b4b8c58192721cbb5bc57" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCollator.html">Collator</a>* RuleBasedCollator::clone           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Makes a deep copy of the object. 
<p>
The caller owns the returned object. <dl class="return" compact><dt><b>Returns:</b></dt><dd>the cloned object. </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002800">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#5b7873505ee31c3745c207cf45d114b4">Collator</a>.
</div>
</div><p>
<a class="anchor" name="21ed64e0bf1796dc401f2bd92457f3d3"></a><!-- doxytag: member="RuleBasedCollator::createCollationElementIterator" ref="21ed64e0bf1796dc401f2bd92457f3d3" args="(const UnicodeString &amp;source) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCollationElementIterator.html">CollationElementIterator</a>* RuleBasedCollator::createCollationElementIterator           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>source</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a collation element iterator for the source string. 
<p>
The caller of this method is responsible for the memory management of the return pointer. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>the string over which the <a class="el" href="classCollationElementIterator.html">CollationElementIterator</a> will iterate. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the collation element iterator of the source string using this as the based <a class="el" href="classCollator.html">Collator</a>. </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002801">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

</div>
</div><p>
<a class="anchor" name="8bc7101af64b85406d7892d01a5ba29b"></a><!-- doxytag: member="RuleBasedCollator::createCollationElementIterator" ref="8bc7101af64b85406d7892d01a5ba29b" args="(const CharacterIterator &amp;source) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCollationElementIterator.html">CollationElementIterator</a>* RuleBasedCollator::createCollationElementIterator           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCharacterIterator.html">CharacterIterator</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>source</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a collation element iterator for the source. 
<p>
The caller of this method is responsible for the memory management of the returned pointer. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>the <a class="el" href="classCharacterIterator.html">CharacterIterator</a> which produces the characters over which the CollationElementItgerator will iterate. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the collation element iterator of the source using this as the based <a class="el" href="classCollator.html">Collator</a>. </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002802">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

</div>
</div><p>
<a class="anchor" name="49b2017fd4861a6361e6b568d887adc2"></a><!-- doxytag: member="RuleBasedCollator::compare" ref="49b2017fd4861a6361e6b568d887adc2" args="(const UnicodeString &amp;source, const UnicodeString &amp;target) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCollator.html#05f22f81363f2613bea18a632b67686f">EComparisonResult</a> RuleBasedCollator::compare           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>target</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Compares a range of character data stored in two different strings based on the collation rules. 
<p>
Returns information about whether a string is less than, greater than or equal to another string in a language. This can be overriden in a subclass. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the target string to be compared with the source string. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the comparison result. GREATER if the source string is greater than the target string, LESS if the source is less than the target. Otherwise, returns EQUAL. </dd></dl>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000218">Deprecated:</a></b></dt><dd>ICU 2.6 Use overload with UErrorCode&amp; </dd></dl>

<p>
Reimplemented from <a class="el" href="classCollator.html#ca611b586fa47a756d2b29996f713182">Collator</a>.
</div>
</div><p>
<a class="anchor" name="b011371ceb1f45df5de1a458d7612aa8"></a><!-- doxytag: member="RuleBasedCollator::compare" ref="b011371ceb1f45df5de1a458d7612aa8" args="(const UnicodeString &amp;source, const UnicodeString &amp;target, UErrorCode &amp;status) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="ucol_8h.html#8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a> RuleBasedCollator::compare           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The comparison function compares the character data stored in two different strings. 
<p>
Returns information about whether a string is less than, greater than or equal to another string. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>the source string to be compared with. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the string that is to be compared with the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>possible error code </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an enum value. UCOL_GREATER if source is greater than target; UCOL_EQUAL if source is equal to target; UCOL_LESS if source is less than target </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002803">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#87d53bab5e900d89ad27fd61ea6b985d">Collator</a>.
</div>
</div><p>
<a class="anchor" name="4c013af7a29d4b307be548dfc631f65c"></a><!-- doxytag: member="RuleBasedCollator::compare" ref="4c013af7a29d4b307be548dfc631f65c" args="(const UnicodeString &amp;source, const UnicodeString &amp;target, int32_t length) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCollator.html#05f22f81363f2613bea18a632b67686f">EComparisonResult</a> RuleBasedCollator::compare           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>length</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Compares a range of character data stored in two different strings based on the collation rules up to the specified length. 
<p>
Returns information about whether a string is less than, greater than or equal to another string in a language. This can be overriden in a subclass. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the target string to be compared with the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>compares up to the specified length </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the comparison result. GREATER if the source string is greater than the target string, LESS if the source is less than the target. Otherwise, returns EQUAL. </dd></dl>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000219">Deprecated:</a></b></dt><dd>ICU 2.6 Use overload with UErrorCode&amp; </dd></dl>

<p>
Reimplemented from <a class="el" href="classCollator.html#e5dcb5135932d73ff6700b66d119b39f">Collator</a>.
</div>
</div><p>
<a class="anchor" name="1acb41e02ed136ecda2441796b727271"></a><!-- doxytag: member="RuleBasedCollator::compare" ref="1acb41e02ed136ecda2441796b727271" args="(const UnicodeString &amp;source, const UnicodeString &amp;target, int32_t length, UErrorCode &amp;status) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="ucol_8h.html#8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a> RuleBasedCollator::compare           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Does the same thing as compare but limits the comparison to a specified length. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>the source string to be compared with. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the string that is to be compared with the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>the length the comparison is limited to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>possible error code </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an enum value. UCOL_GREATER if source (up to the specified length) is greater than target; UCOL_EQUAL if source (up to specified length) is equal to target; UCOL_LESS if source (up to the specified length) is less than target. </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002804">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#550d7d5a20e5b885f93331f5fa508e40">Collator</a>.
</div>
</div><p>
<a class="anchor" name="522f1279a6f70a1e94564f669ae4d410"></a><!-- doxytag: member="RuleBasedCollator::compare" ref="522f1279a6f70a1e94564f669ae4d410" args="(const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCollator.html#05f22f81363f2613bea18a632b67686f">EComparisonResult</a> RuleBasedCollator::compare           </td>
          <td>(</td>
          <td class="paramtype">const UChar *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>sourceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const UChar *&nbsp;</td>
          <td class="paramname"> <em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>targetLength</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The comparison function compares the character data stored in two different string arrays. 
<p>
Returns information about whether a string array is less than, greater than or equal to another string array. <p>
Example of use: <pre>
 .       UChar ABC[] = {0x41, 0x42, 0x43, 0};  // = "ABC"
 .       UChar abc[] = {0x61, 0x62, 0x63, 0};  // = "abc"
 .       UErrorCode status = U_ZERO_ERROR;
 .       <a class="el" href="classCollator.html">Collator</a> *myCollation =
 .                         Collator::createInstance(Locale::US, status);
 .       if (<a class="el" href="utypes_8h.html#4d202200b6aa6f3c965ea370e0c8155f">U_FAILURE(status)</a>) return;
 .       myCollation-&gt;setStrength(Collator::PRIMARY);
 .       // result would be Collator::EQUAL ("abc" == "ABC")
 .       // (no primary difference between "abc" and "ABC")
 .       <a class="el" href="classCollator.html#05f22f81363f2613bea18a632b67686f">Collator::EComparisonResult</a> result =
 .                             myCollation-&gt;compare(abc, 3, ABC, 3);
 .       myCollation-&gt;setStrength(Collator::TERTIARY);
 .       // result would be Collator::LESS ("abc" &lt;&lt;&lt; "ABC")
 .       // (with tertiary difference between "abc" and "ABC")
 .       result =  myCollation-&gt;compare(abc, 3, ABC, 3);
 </pre> <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>the source string array to be compared with. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sourceLength</em>&nbsp;</td><td>the length of the source string array. If this value is equal to -1, the string array is null-terminated. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the string that is to be compared with the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>targetLength</em>&nbsp;</td><td>the length of the target string array. If this value is equal to -1, the string array is null-terminated. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns a byte value. GREATER if source is greater than target; EQUAL if source is equal to target; LESS if source is less than target </dd></dl>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000220">Deprecated:</a></b></dt><dd>ICU 2.6 Use overload with UErrorCode&amp; </dd></dl>

<p>
Reimplemented from <a class="el" href="classCollator.html#6ed570968d689706df2e232fdab844fa">Collator</a>.
</div>
</div><p>
<a class="anchor" name="6d410b9e3a7a3c353ca961ffbe6f5fdb"></a><!-- doxytag: member="RuleBasedCollator::compare" ref="6d410b9e3a7a3c353ca961ffbe6f5fdb" args="(const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength, UErrorCode &amp;status) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="ucol_8h.html#8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a> RuleBasedCollator::compare           </td>
          <td>(</td>
          <td class="paramtype">const UChar *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>sourceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const UChar *&nbsp;</td>
          <td class="paramname"> <em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>targetLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The comparison function compares the character data stored in two different string arrays. 
<p>
Returns information about whether a string array is less than, greater than or equal to another string array. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>the source string array to be compared with. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sourceLength</em>&nbsp;</td><td>the length of the source string array. If this value is equal to -1, the string array is null-terminated. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the string that is to be compared with the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>targetLength</em>&nbsp;</td><td>the length of the target string array. If this value is equal to -1, the string array is null-terminated. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>possible error code </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an enum value. UCOL_GREATER if source is greater than target; UCOL_EQUAL if source is equal to target; UCOL_LESS if source is less than target </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002805">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#5f32ec22ac5ed66bff8d7707db9260d7">Collator</a>.
</div>
</div><p>
<a class="anchor" name="509690ecc2c4de4683cc226b4317174f"></a><!-- doxytag: member="RuleBasedCollator::getCollationKey" ref="509690ecc2c4de4683cc226b4317174f" args="(const UnicodeString &amp;source, CollationKey &amp;key, UErrorCode &amp;status) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCollationKey.html">CollationKey</a>&amp; RuleBasedCollator::getCollationKey           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCollationKey.html">CollationKey</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transforms a specified region of the string into a series of characters that can be compared with CollationKey.compare. 
<p>
Use a <a class="el" href="classCollationKey.html">CollationKey</a> when you need to do repeated comparisions on the same string. For a single comparison the compare method will be faster. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>the transformed key of the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>the error code status. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the transformed key. </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classCollationKey.html">CollationKey</a> </dd></dl>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000221">Deprecated:</a></b></dt><dd>ICU 2.8 Use getSortKey(...) instead </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#b48ddb212e12b9ef4ffa7163e2d7810a">Collator</a>.
</div>
</div><p>
<a class="anchor" name="36b0939e2dfb7c47fef177e0eec93700"></a><!-- doxytag: member="RuleBasedCollator::getCollationKey" ref="36b0939e2dfb7c47fef177e0eec93700" args="(const UChar *source, int32_t sourceLength, CollationKey &amp;key, UErrorCode &amp;status) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCollationKey.html">CollationKey</a>&amp; RuleBasedCollator::getCollationKey           </td>
          <td>(</td>
          <td class="paramtype">const UChar *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>sourceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classCollationKey.html">CollationKey</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transforms a specified region of the string into a series of characters that can be compared with CollationKey.compare. 
<p>
Use a <a class="el" href="classCollationKey.html">CollationKey</a> when you need to do repeated comparisions on the same string. For a single comparison the compare method will be faster. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sourceLength</em>&nbsp;</td><td>the length of the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>the transformed key of the source string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>the error code status. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the transformed key. </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classCollationKey.html">CollationKey</a> </dd></dl>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000222">Deprecated:</a></b></dt><dd>ICU 2.8 Use getSortKey(...) instead </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#fd733f040738213f0e46847b1e31cf6a">Collator</a>.
</div>
</div><p>
<a class="anchor" name="326891c5ae3763fab6e8e00b2289a413"></a><!-- doxytag: member="RuleBasedCollator::hashCode" ref="326891c5ae3763fab6e8e00b2289a413" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> RuleBasedCollator::hashCode           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Generates the hash code for the rule-based collation object. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the hash code. </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002806">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#989efcbd6664efd0a8e738a2c1d3f357">Collator</a>.
</div>
</div><p>
<a class="anchor" name="3d00b511fe6fc791bdf728c50a98c45c"></a><!-- doxytag: member="RuleBasedCollator::getLocale" ref="3d00b511fe6fc791bdf728c50a98c45c" args="(ULocDataLocaleType type, UErrorCode &amp;status) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classLocale.html">Locale</a> RuleBasedCollator::getLocale           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="uloc_8h.html#df053345d343f8d82ae080f7a5871f34">ULocDataLocaleType</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the locale of the <a class="el" href="classCollator.html">Collator</a>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>can be either requested, valid or actual locale. For more information see the definition of ULocDataLocaleType in <a class="el" href="uloc_8h.html">uloc.h</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>the error code status. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>locale where the collation data lives. If the collator was instantiated from rules, locale is empty. </dd></dl>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000223">Deprecated:</a></b></dt><dd>ICU 2.8 likely to change in ICU 3.0, based on feedback </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#3a871f1b08787fde0a9a4fef135d2928">Collator</a>.
</div>
</div><p>
<a class="anchor" name="88b7cf04ca345ea2b17199905b869ccd"></a><!-- doxytag: member="RuleBasedCollator::getRules" ref="88b7cf04ca345ea2b17199905b869ccd" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classUnicodeString.html">UnicodeString</a>&amp; RuleBasedCollator::getRules           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the table-based rules for the collation object. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns the collation rules that the table collation object was created from. </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002807">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="c3e91383098974cd3cd4db490b5b7dcd"></a><!-- doxytag: member="RuleBasedCollator::getVersion" ref="c3e91383098974cd3cd4db490b5b7dcd" args="(UVersionInfo info) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RuleBasedCollator::getVersion           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="uversion_8h.html#61caef96ba86d8e86a4031925ea44e94">UVersionInfo</a>&nbsp;</td>
          <td class="paramname"> <em>info</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the version information for a <a class="el" href="classCollator.html">Collator</a>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td>the version # information, the result will be filled in </td></tr>
  </table>
</dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002808">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#a0be92c2d066910f88b27d914b4fb117">Collator</a>.
</div>
</div><p>
<a class="anchor" name="986a615000a5828dbbddecd0a151f4ab"></a><!-- doxytag: member="RuleBasedCollator::getMaxExpansion" ref="986a615000a5828dbbddecd0a151f4ab" args="(int32_t order) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> RuleBasedCollator::getMaxExpansion           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>order</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the maximum length of any expansion sequences that end with the specified comparison order. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>order</em>&nbsp;</td><td>a collation order returned by previous or next. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>maximum size of the expansion sequences ending with the collation element or 1 if collation element does not occur at the end of any expansion sequence </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classCollationElementIterator.html#ea334a8abe02f4544a98d32c83e72ad9">CollationElementIterator::getMaxExpansion</a> </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002809">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="475f2ae0796fc004c76c10d30b991ca5"></a><!-- doxytag: member="RuleBasedCollator::getDynamicClassID" ref="475f2ae0796fc004c76c10d30b991ca5" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="utypes_8h.html#22af10545208a455a6e884008df48e9f">UClassID</a> RuleBasedCollator::getDynamicClassID           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns a unique class ID POLYMORPHICALLY. 
<p>
Pure virtual override. This method is to implement a simple version of RTTI, since not all C++ compilers support genuine RTTI. Polymorphic <a class="el" href="classRuleBasedCollator.html#270d4f6ee757818e2ae675df1c8f0238">operator==()</a> and <a class="el" href="classRuleBasedCollator.html#fc3925de9f5b4b8c58192721cbb5bc57">clone()</a> methods call this method. <dl class="return" compact><dt><b>Returns:</b></dt><dd>The class ID for this object. All objects of a given class have the same class ID. Objects of other classes have different class IDs. </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002810">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#eaf10ab8b08d195a294a9b15aa7195da">Collator</a>.
</div>
</div><p>
<a class="anchor" name="0662ee51db5ee4ddb20ccd0aade72423"></a><!-- doxytag: member="RuleBasedCollator::getStaticClassID" ref="0662ee51db5ee4ddb20ccd0aade72423" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="utypes_8h.html#22af10545208a455a6e884008df48e9f">UClassID</a> RuleBasedCollator::getStaticClassID           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the class ID for this class. 
<p>
This is useful only for comparing to a return value from <a class="el" href="classRuleBasedCollator.html#475f2ae0796fc004c76c10d30b991ca5">getDynamicClassID()</a>. For example: <pre>
 Base* polymorphic_pointer = createPolymorphicObject();
 if (polymorphic_pointer-&gt;<a class="el" href="classRuleBasedCollator.html#475f2ae0796fc004c76c10d30b991ca5">getDynamicClassID()</a> ==
                                          Derived::getStaticClassID()) ...
 </pre> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The class ID for all objects of this class. </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002811">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div><p>
<a class="anchor" name="76f0c6651087f795e934ecba2357be36"></a><!-- doxytag: member="RuleBasedCollator::cloneRuleData" ref="76f0c6651087f795e934ecba2357be36" args="(int32_t &amp;length, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pwin32_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>* RuleBasedCollator::cloneRuleData           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the binary format of the class's rules. 
<p>
The format is that of .col files. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>Returns the length of the data, in bytes </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>the error code status. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>memory, owned by the caller, of size 'length' bytes. </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002812">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

</div>
</div><p>
<a class="anchor" name="b4471befc42bf436cb771cef6b184ab7"></a><!-- doxytag: member="RuleBasedCollator::cloneBinary" ref="b4471befc42bf436cb771cef6b184ab7" args="(uint8_t *buffer, int32_t capacity, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> RuleBasedCollator::cloneBinary           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>capacity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a binary image of a collator. 
<p>
This binary image can be stored and later used to instantiate a collator using ucol_openBinary. This API supports preflighting. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>a fill-in buffer to receive the binary image </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>capacity</em>&nbsp;</td><td>capacity of the destination buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>for catching errors </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>size of the image </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="ucol_8h.html#467ea0dde69a6990f6ecbb7e30da6003">ucol_openBinary</a> </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002813">Stable:</a></b></dt><dd>ICU 3.4 </dd></dl>

</div>
</div><p>
<a class="anchor" name="49272a769d004665e981226e34859154"></a><!-- doxytag: member="RuleBasedCollator::getRules" ref="49272a769d004665e981226e34859154" args="(UColRuleOption delta, UnicodeString &amp;buffer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RuleBasedCollator::getRules           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ucol_8h.html#46363290036b8dffd6862c35e7b5872f">UColRuleOption</a>&nbsp;</td>
          <td class="paramname"> <em>delta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>buffer</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns current rules. 
<p>
Delta defines whether full rules are returned or just the tailoring. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>delta</em>&nbsp;</td><td>one of UCOL_TAILORING_ONLY, UCOL_FULL_RULES. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td><a class="el" href="classUnicodeString.html">UnicodeString</a> to store the result rules </td></tr>
  </table>
</dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002814">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

</div>
</div><p>
<a class="anchor" name="c1817cbafe92cd3184d8712a8b72d746"></a><!-- doxytag: member="RuleBasedCollator::setAttribute" ref="c1817cbafe92cd3184d8712a8b72d746" args="(UColAttribute attr, UColAttributeValue value, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RuleBasedCollator::setAttribute           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ucol_8h.html#583fbe7fc4a850e2fcc692e766d2826c">UColAttribute</a>&nbsp;</td>
          <td class="paramname"> <em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a>&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Universal attribute setter. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>attr</em>&nbsp;</td><td>attribute type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>attribute value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>to indicate whether the operation went on smoothly or there were errors </td></tr>
  </table>
</dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002815">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#132f1d7ad918bc1f4dcb956fd74ea808">Collator</a>.
</div>
</div><p>
<a class="anchor" name="4b104673bfec94c58f91478f14bcd286"></a><!-- doxytag: member="RuleBasedCollator::getAttribute" ref="4b104673bfec94c58f91478f14bcd286" args="(UColAttribute attr, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a> RuleBasedCollator::getAttribute           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ucol_8h.html#583fbe7fc4a850e2fcc692e766d2826c">UColAttribute</a>&nbsp;</td>
          <td class="paramname"> <em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Universal attribute getter. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>attr</em>&nbsp;</td><td>attribute type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>to indicate whether the operation went on smoothly or there were errors </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>attribute value </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002816">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#84c6c013a46196d829f71fa843ae7933">Collator</a>.
</div>
</div><p>
<a class="anchor" name="1049c65c7c51c9540ca91bae25bf9f54"></a><!-- doxytag: member="RuleBasedCollator::setVariableTop" ref="1049c65c7c51c9540ca91bae25bf9f54" args="(const UChar *varTop, int32_t len, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="pwin32_8h.html#435d1572bf3f880d55459d9805097f62">uint32_t</a> RuleBasedCollator::setVariableTop           </td>
          <td>(</td>
          <td class="paramtype">const UChar *&nbsp;</td>
          <td class="paramname"> <em>varTop</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the variable top to a collation element value of a string supplied. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>varTop</em>&nbsp;</td><td>one or more (if contraction) UChars to which the variable top should be set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of variable top string. If -1 it is considered to be zero terminated. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>error code. If error code is set, the return value is undefined. Errors set by this function are: <br>
 U_CE_NOT_FOUND_ERROR if more than one character was passed and there is no such a contraction<br>
 U_PRIMARY_TOO_LONG_ERROR if the primary for the variable top has more than two bytes </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a 32 bit value containing the value of the variable top in upper 16 bits. Lower 16 bits are undefined </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002817">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#b6e4fc13e278beca8a39539dc326a913">Collator</a>.
</div>
</div><p>
<a class="anchor" name="828496b246626823fd96abe7dcf86782"></a><!-- doxytag: member="RuleBasedCollator::setVariableTop" ref="828496b246626823fd96abe7dcf86782" args="(const UnicodeString varTop, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="pwin32_8h.html#435d1572bf3f880d55459d9805097f62">uint32_t</a> RuleBasedCollator::setVariableTop           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a>&nbsp;</td>
          <td class="paramname"> <em>varTop</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the variable top to a collation element value of a string supplied. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>varTop</em>&nbsp;</td><td>an <a class="el" href="classUnicodeString.html">UnicodeString</a> size 1 or more (if contraction) of UChars to which the variable top should be set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>error code. If error code is set, the return value is undefined. Errors set by this function are: <br>
 U_CE_NOT_FOUND_ERROR if more than one character was passed and there is no such a contraction<br>
 U_PRIMARY_TOO_LONG_ERROR if the primary for the variable top has more than two bytes </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a 32 bit value containing the value of the variable top in upper 16 bits. Lower 16 bits are undefined </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002818">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#dbf3ad5122866f9a16d39ca07779ddce">Collator</a>.
</div>
</div><p>
<a class="anchor" name="da7dd7ac546e91febadd47c68df9c102"></a><!-- doxytag: member="RuleBasedCollator::setVariableTop" ref="da7dd7ac546e91febadd47c68df9c102" args="(const uint32_t varTop, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RuleBasedCollator::setVariableTop           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="pwin32_8h.html#435d1572bf3f880d55459d9805097f62">uint32_t</a>&nbsp;</td>
          <td class="paramname"> <em>varTop</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the variable top to a collation element value supplied. 
<p>
Variable top is set to the upper 16 bits. Lower 16 bits are ignored. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>varTop</em>&nbsp;</td><td>CE value, as returned by setVariableTop or ucol)getVariableTop </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>error code (not changed by function) </td></tr>
  </table>
</dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002819">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#fc34e06d5d3675e6e6ad26a1ee303690">Collator</a>.
</div>
</div><p>
<a class="anchor" name="9ca19126249015219dcfea19339d2e5b"></a><!-- doxytag: member="RuleBasedCollator::getVariableTop" ref="9ca19126249015219dcfea19339d2e5b" args="(UErrorCode &amp;status) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="pwin32_8h.html#435d1572bf3f880d55459d9805097f62">uint32_t</a> RuleBasedCollator::getVariableTop           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the variable top value of a <a class="el" href="classCollator.html">Collator</a>. 
<p>
Lower 16 bits are undefined and should be ignored. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>error code (not changed by function). If error code is set, the return value is undefined. </td></tr>
  </table>
</dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002820">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#f04197e6c46b619cb1afbd523c333643">Collator</a>.
</div>
</div><p>
<a class="anchor" name="40d5958bd18ed0da6baf0324c37769a5"></a><!-- doxytag: member="RuleBasedCollator::getTailoredSet" ref="40d5958bd18ed0da6baf0324c37769a5" args="(UErrorCode &amp;status) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classUnicodeSet.html">UnicodeSet</a>* RuleBasedCollator::getTailoredSet           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get an <a class="el" href="classUnicodeSet.html">UnicodeSet</a> that contains all the characters and sequences tailored in this collator. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>error code of the operation </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to a <a class="el" href="classUnicodeSet.html">UnicodeSet</a> object containing all the code points and sequences that may sort differently than in the UCA. The object must be disposed of by using delete </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002821">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

<p>
Reimplemented from <a class="el" href="classCollator.html#a62e72fedfe466e279f4ebf6343c520e">Collator</a>.
</div>
</div><p>
<a class="anchor" name="b58b1bbb98649f03131fe8b4dcd7b109"></a><!-- doxytag: member="RuleBasedCollator::safeClone" ref="b58b1bbb98649f03131fe8b4dcd7b109" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCollator.html">Collator</a>* RuleBasedCollator::safeClone           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Thread safe cloning operation. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the new clone, user should remove it. </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002822">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#a97156a2a27c2e7fc0fccd0aee61de5a">Collator</a>.
</div>
</div><p>
<a class="anchor" name="572804441daa3ff64895a75b87991369"></a><!-- doxytag: member="RuleBasedCollator::getSortKey" ref="572804441daa3ff64895a75b87991369" args="(const UnicodeString &amp;source, uint8_t *result, int32_t resultLength) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> RuleBasedCollator::getSortKey           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>resultLength</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the sort key as an array of bytes from an <a class="el" href="classUnicodeString.html">UnicodeString</a>. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>string to be processed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>buffer to store result in. If NULL, number of bytes needed will be returned. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>resultLength</em>&nbsp;</td><td>length of the result buffer. If if not enough the buffer will be filled to capacity. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of bytes needed for storing the sort key </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002823">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#e524fd43a06d4429e2c76bef35874d4c">Collator</a>.
</div>
</div><p>
<a class="anchor" name="9c185650b038aa1d64f01dbc6fdfbfbb"></a><!-- doxytag: member="RuleBasedCollator::getSortKey" ref="9c185650b038aa1d64f01dbc6fdfbfbb" args="(const UChar *source, int32_t sourceLength, uint8_t *result, int32_t resultLength) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> RuleBasedCollator::getSortKey           </td>
          <td>(</td>
          <td class="paramtype">const UChar *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>sourceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pwin32_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a>&nbsp;</td>
          <td class="paramname"> <em>resultLength</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the sort key as an array of bytes from an UChar buffer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>string to be processed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sourceLength</em>&nbsp;</td><td>length of string to be processed. If -1, the string is 0 terminated and length will be decided by the function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>buffer to store result in. If NULL, number of bytes needed will be returned. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>resultLength</em>&nbsp;</td><td>length of the result buffer. If if not enough the buffer will be filled to capacity. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of bytes needed for storing the sort key </dd></dl>
<dl compact><dt><b><a class="el" href="stable.html#_stable002824">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#f379292af58ae29650690a02c410bfe1">Collator</a>.
</div>
</div><p>
<a class="anchor" name="4687629722826dd02625049df0dcff2f"></a><!-- doxytag: member="RuleBasedCollator::getStrength" ref="4687629722826dd02625049df0dcff2f" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a> RuleBasedCollator::getStrength           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Determines the minimum strength that will be use in comparison or transformation. 
<p>
E.g. with strength == SECONDARY, the tertiary difference is ignored <p>
E.g. with strength == PRIMARY, the secondary and tertiary difference are ignored. <dl class="return" compact><dt><b>Returns:</b></dt><dd>the current comparison level. </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classRuleBasedCollator.html#124ab414f1dc23cb3a5acc3f61e6a2d2">RuleBasedCollator::setStrength</a> </dd></dl>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000224">Deprecated:</a></b></dt><dd>ICU 2.6 Use getAttribute(UCOL_STRENGTH...) instead </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#bbd68b496b6063c5a09a35ce96e4ce93">Collator</a>.
</div>
</div><p>
<a class="anchor" name="124ab414f1dc23cb3a5acc3f61e6a2d2"></a><!-- doxytag: member="RuleBasedCollator::setStrength" ref="124ab414f1dc23cb3a5acc3f61e6a2d2" args="(ECollationStrength newStrength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RuleBasedCollator::setStrength           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a>&nbsp;</td>
          <td class="paramname"> <em>newStrength</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the minimum strength to be used in comparison or transformation. 
<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classRuleBasedCollator.html#4687629722826dd02625049df0dcff2f">RuleBasedCollator::getStrength</a> </dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>newStrength</em>&nbsp;</td><td>the new comparison level. </td></tr>
  </table>
</dl>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000225">Deprecated:</a></b></dt><dd>ICU 2.6 Use setAttribute(UCOL_STRENGTH...) instead </dd></dl>

<p>
Implements <a class="el" href="classCollator.html#0337d30970c7b73a6885a31d6d7d2afa">Collator</a>.
</div>
</div><p>
<a class="anchor" name="6333a2d290fb5e3d005c60ebcd4a89e0"></a><!-- doxytag: member="RuleBasedCollator::getUCollator" ref="6333a2d290fb5e3d005c60ebcd4a89e0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="ucol_8h.html#3c4eeb412a5fd72762e6245aa75ca081">UCollator</a> * RuleBasedCollator::getUCollator           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get UCollator data struct. 
<p>
Used only by <a class="el" href="classStringSearch.html">StringSearch</a> &amp; intltest. <dl class="return" compact><dt><b>Returns:</b></dt><dd>UCollator data struct </dd></dl>
<dl compact><dt><b><a class="el" href="internal.html#_internal000183">Internal:</a></b></dt><dd>Do not use. This API is for interal use only. </dd></dl>

<p>
Definition at line <a class="el" href="tblcoll_8h-source.html#l00865">865</a> of file <a class="el" href="tblcoll_8h-source.html">tblcoll.h</a>.
</div>
</div><p>
<a class="anchor" name="24185345cc10b9fa5b167dae836e9aab"></a><!-- doxytag: member="RuleBasedCollator::setLocales" ref="24185345cc10b9fa5b167dae836e9aab" args="(const Locale &amp;requestedLocale, const Locale &amp;validLocale)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RuleBasedCollator::setLocales           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classLocale.html">Locale</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>requestedLocale</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classLocale.html">Locale</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>validLocale</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Used internally by registraton to define the requested and valid locales. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>requestedLocale</em>&nbsp;</td><td>the requsted locale </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>validLocale</em>&nbsp;</td><td>the valid locale </td></tr>
  </table>
</dl>
<dl compact><dt><b><a class="el" href="internal.html#_internal000184">Internal:</a></b></dt><dd>Do not use. This API is for interal use only. </dd></dl>

<p>
Reimplemented from <a class="el" href="classCollator.html#da9ebd7bfb43f664a1ac43dd7b78967d">Collator</a>.
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="tblcoll_8h-source.html">tblcoll.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Fri Sep 14 12:59:45 2007 for ICU 3.8 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
</body>
</html>