Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > f51238514e2abe817779ad2fe01b0759 > files > 170

icu-doc-4.4-2.1mdv2010.2.i586.rpm

<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>ICU 4.4: RuleBasedCollator Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</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>
</div>
<div class="contents">
<h1>RuleBasedCollator Class Reference</h1><!-- doxytag: class="RuleBasedCollator" --><!-- doxytag: inherits="Collator" -->
<p>The <a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> class provides the simple implementation of <a class="el" href="classCollator.html" title="The Collator class performs locale-sensitive string comparison.">Collator</a>, using data-driven tables.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="tblcoll_8h_source.html">tblcoll.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for RuleBasedCollator:</div>
<div class="dynsection">
 <div class="center">
  <img src="classRuleBasedCollator.gif" usemap="#RuleBasedCollator_map" alt=""/>
  <map id="RuleBasedCollator_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>
 </div>
</div>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a685723bd1b8a2df19350e5d8dce24c82">RuleBasedCollator</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;rules, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> constructor.  <a href="#a685723bd1b8a2df19350e5d8dce24c82"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#acef0c60403fc780975d265cc6d52e3db">RuleBasedCollator</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;rules, <a class="el" href="classCollator.html#a2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a> collationStrength, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> constructor.  <a href="#acef0c60403fc780975d265cc6d52e3db"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#aaae0055ec92464409909fbdd0c7ac589">RuleBasedCollator</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;rules, <a class="el" href="ucol_8h.html#acc801048729e684bcabed328be85f77a">UColAttributeValue</a> decompositionMode, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> constructor.  <a href="#aaae0055ec92464409909fbdd0c7ac589"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#ab22f30328e5abbb779b0a7c03b01e09a">RuleBasedCollator</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;rules, <a class="el" href="classCollator.html#a2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a> collationStrength, <a class="el" href="ucol_8h.html#acc801048729e684bcabed328be85f77a">UColAttributeValue</a> decompositionMode, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> constructor.  <a href="#ab22f30328e5abbb779b0a7c03b01e09a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a3b002ad7d57e54e1a75d9c6fc7d9c5d5">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="#a3b002ad7d57e54e1a75d9c6fc7d9c5d5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a8422ec09bd4b623a3bff4e09c80a28cc">RuleBasedCollator</a> (const uint8_t *bin, int32_t length, const <a class="el" href="classRuleBasedCollator.html">RuleBasedCollator</a> *base, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">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="#a8422ec09bd4b623a3bff4e09c80a28cc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a2a080eeab83d1864d481fb45c6b82a59">~RuleBasedCollator</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor.  <a href="#a2a080eeab83d1864d481fb45c6b82a59"></a><br/></td></tr>
<tr><td class="memItemLeft" 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#a45ad21c50ac6d159d119d2c3a6dcd425">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="#a45ad21c50ac6d159d119d2c3a6dcd425"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a7cfc8bb7eff90714b83db01091e9d9a1">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="#a7cfc8bb7eff90714b83db01091e9d9a1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a87cb492d16807f67f7ff1cf384a2587b">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="#a87cb492d16807f67f7ff1cf384a2587b"></a><br/></td></tr>
<tr><td class="memItemLeft" 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#afc3925de9f5b4b8c58192721cbb5bc57">clone</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Makes a deep copy of the object.  <a href="#afc3925de9f5b4b8c58192721cbb5bc57"></a><br/></td></tr>
<tr><td class="memItemLeft" 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#aa00694d6f6463f3f21566ce173462fb6">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="#aa00694d6f6463f3f21566ce173462fb6"></a><br/></td></tr>
<tr><td class="memItemLeft" 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#a07d693b537314e91abadff6fd712945e">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="#a07d693b537314e91abadff6fd712945e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCollator.html#a05f22f81363f2613bea18a632b67686f">EComparisonResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a49b2017fd4861a6361e6b568d887adc2">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="#a49b2017fd4861a6361e6b568d887adc2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="ucol_8h.html#a8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#ab011371ceb1f45df5de1a458d7612aa8">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#a3343c1c8a8377277046774691c98d78c">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="#ab011371ceb1f45df5de1a458d7612aa8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCollator.html#a05f22f81363f2613bea18a632b67686f">EComparisonResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a1b7b66b3376e53e186cbf5f60fa4505d">compare</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;source, const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;target, int32_t length) 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="#a1b7b66b3376e53e186cbf5f60fa4505d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="ucol_8h.html#a8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#acdc1ac2c3ded9364391e9b350d8b3842">compare</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;source, const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;target, int32_t length, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">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="#acdc1ac2c3ded9364391e9b350d8b3842"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCollator.html#a05f22f81363f2613bea18a632b67686f">EComparisonResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#aa93718b20d61f023bd126d5ed74ae1e0">compare</a> (const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *source, int32_t sourceLength, const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *target, int32_t 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="#aa93718b20d61f023bd126d5ed74ae1e0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="ucol_8h.html#a8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a6d410b9e3a7a3c353ca961ffbe6f5fdb">compare</a> (const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *source, int32_t sourceLength, const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *target, int32_t targetLength, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">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="#a6d410b9e3a7a3c353ca961ffbe6f5fdb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="ucol_8h.html#a8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a3ef0967c8d475d91884193f2d1f60c21">compare</a> (<a class="el" href="structUCharIterator.html">UCharIterator</a> &amp;sIter, <a class="el" href="structUCharIterator.html">UCharIterator</a> &amp;tIter, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compares two strings using the <a class="el" href="classCollator.html" title="The Collator class performs locale-sensitive string comparison.">Collator</a>.  <a href="#a3ef0967c8d475d91884193f2d1f60c21"></a><br/></td></tr>
<tr><td class="memItemLeft" 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#a509690ecc2c4de4683cc226b4317174f">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#a3343c1c8a8377277046774691c98d78c">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="#a509690ecc2c4de4683cc226b4317174f"></a><br/></td></tr>
<tr><td class="memItemLeft" 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#a36b0939e2dfb7c47fef177e0eec93700">getCollationKey</a> (const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *source, int32_t sourceLength, <a class="el" href="classCollationKey.html">CollationKey</a> &amp;key, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">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="#a36b0939e2dfb7c47fef177e0eec93700"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a326891c5ae3763fab6e8e00b2289a413">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="#a326891c5ae3763fab6e8e00b2289a413"></a><br/></td></tr>
<tr><td class="memItemLeft" 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#a97cbec9ebe971ca9de1795e1dc3d63b0">getLocale</a> (<a class="el" href="uloc_8h.html#adf053345d343f8d82ae080f7a5871f34">ULocDataLocaleType</a> type, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">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" title="The Collator class performs locale-sensitive string comparison.">Collator</a>.  <a href="#a97cbec9ebe971ca9de1795e1dc3d63b0"></a><br/></td></tr>
<tr><td class="memItemLeft" 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#a88b7cf04ca345ea2b17199905b869ccd">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="#a88b7cf04ca345ea2b17199905b869ccd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a849f680b92692a38715b6b9fb67be7cf">getVersion</a> (<a class="el" href="uversion_8h.html#a61caef96ba86d8e86a4031925ea44e94">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" title="The Collator class performs locale-sensitive string comparison.">Collator</a>.  <a href="#a849f680b92692a38715b6b9fb67be7cf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a86128484ed00d48e3b646c2f63cdafe6">getMaxExpansion</a> (int32_t 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="#a86128484ed00d48e3b646c2f63cdafe6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a475f2ae0796fc004c76c10d30b991ca5">getDynamicClassID</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a unique class ID POLYMORPHICALLY.  <a href="#a475f2ae0796fc004c76c10d30b991ca5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a76f0c6651087f795e934ecba2357be36">cloneRuleData</a> (int32_t &amp;length, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">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="#a76f0c6651087f795e934ecba2357be36"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#ab4471befc42bf436cb771cef6b184ab7">cloneBinary</a> (uint8_t *buffer, int32_t capacity, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a binary image of a collator.  <a href="#ab4471befc42bf436cb771cef6b184ab7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a49272a769d004665e981226e34859154">getRules</a> (<a class="el" href="ucol_8h.html#a46363290036b8dffd6862c35e7b5872f">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="#a49272a769d004665e981226e34859154"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#ac1817cbafe92cd3184d8712a8b72d746">setAttribute</a> (<a class="el" href="ucol_8h.html#a583fbe7fc4a850e2fcc692e766d2826c">UColAttribute</a> attr, <a class="el" href="ucol_8h.html#acc801048729e684bcabed328be85f77a">UColAttributeValue</a> value, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Universal attribute setter.  <a href="#ac1817cbafe92cd3184d8712a8b72d746"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="ucol_8h.html#acc801048729e684bcabed328be85f77a">UColAttributeValue</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a4b104673bfec94c58f91478f14bcd286">getAttribute</a> (<a class="el" href="ucol_8h.html#a583fbe7fc4a850e2fcc692e766d2826c">UColAttribute</a> attr, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Universal attribute getter.  <a href="#a4b104673bfec94c58f91478f14bcd286"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a1049c65c7c51c9540ca91bae25bf9f54">setVariableTop</a> (const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *varTop, int32_t len, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">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="#a1049c65c7c51c9540ca91bae25bf9f54"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a828496b246626823fd96abe7dcf86782">setVariableTop</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> varTop, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">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="#a828496b246626823fd96abe7dcf86782"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#ada7dd7ac546e91febadd47c68df9c102">setVariableTop</a> (const uint32_t varTop, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">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="#ada7dd7ac546e91febadd47c68df9c102"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#ac064aa96a85249dbf7e51713952d63df">getVariableTop</a> (<a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">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" title="The Collator class performs locale-sensitive string comparison.">Collator</a>.  <a href="#ac064aa96a85249dbf7e51713952d63df"></a><br/></td></tr>
<tr><td class="memItemLeft" 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#a3c6f52fdf71f631fef79dd7b0a71b2f8">getTailoredSet</a> (<a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get an <a class="el" href="classUnicodeSet.html" title="A mutable set of Unicode characters and multicharacter strings.">UnicodeSet</a> that contains all the characters and sequences tailored in this collator.  <a href="#a3c6f52fdf71f631fef79dd7b0a71b2f8"></a><br/></td></tr>
<tr><td class="memItemLeft" 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#ab58b1bbb98649f03131fe8b4dcd7b109">safeClone</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Thread safe cloning operation.  <a href="#ab58b1bbb98649f03131fe8b4dcd7b109"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a572804441daa3ff64895a75b87991369">getSortKey</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &amp;source, uint8_t *result, int32_t 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" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>.  <a href="#a572804441daa3ff64895a75b87991369"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a9c185650b038aa1d64f01dbc6fdfbfbb">getSortKey</a> (const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *source, int32_t sourceLength, uint8_t *result, int32_t 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="#a9c185650b038aa1d64f01dbc6fdfbfbb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCollator.html#a2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a4687629722826dd02625049df0dcff2f">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="#a4687629722826dd02625049df0dcff2f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a124ab414f1dc23cb3a5acc3f61e6a2d2">setStrength</a> (<a class="el" href="classCollator.html#a2872c36ad74fc1100331783afe6b38d5">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="#a124ab414f1dc23cb3a5acc3f61e6a2d2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="ucol_8h.html#a3c4eeb412a5fd72762e6245aa75ca081">UCollator</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a6333a2d290fb5e3d005c60ebcd4a89e0">getUCollator</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get UCollator data struct.  <a href="#a6333a2d290fb5e3d005c60ebcd4a89e0"></a><br/></td></tr>
<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a0662ee51db5ee4ddb20ccd0aade72423">getStaticClassID</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the class ID for this class.  <a href="#a0662ee51db5ee4ddb20ccd0aade72423"></a><br/></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#ac1aa2afb4a6b684d25fb89f7632ba7f9">setLocales</a> (const <a class="el" href="classLocale.html">Locale</a> &amp;requestedLocale, const <a class="el" href="classLocale.html">Locale</a> &amp;validLocale, const <a class="el" href="classLocale.html">Locale</a> &amp;actualLocale)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used internally by registraton to define the requested and valid locales.  <a href="#ac1aa2afb4a6b684d25fb89f7632ba7f9"></a><br/></td></tr>
<tr><td colspan="2"><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2493a8a45ec3ae69e1bec8355c948519"></a><!-- doxytag: member="RuleBasedCollator::CollationElementIterator" ref="a2493a8a45ec3ae69e1bec8355c948519" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a2493a8a45ec3ae69e1bec8355c948519">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" align="right" valign="top"><a class="anchor" id="af22e5ffabbf5a2d4d729daa0b5d3cafd"></a><!-- doxytag: member="RuleBasedCollator::Collator" ref="af22e5ffabbf5a2d4d729daa0b5d3cafd" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#af22e5ffabbf5a2d4d729daa0b5d3cafd">Collator</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classCollator.html" title="The Collator class performs locale-sensitive string comparison.">Collator</a> ONLY needs access to <a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a>(const <a class="el" href="classLocale.html" title="A Locale object represents a specific geographical, political, or cultural region...">Locale</a>&amp;, UErrorCode&amp;). <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a421a131b6330b132d67ac9582acb9886"></a><!-- doxytag: member="RuleBasedCollator::StringSearch" ref="a421a131b6330b132d67ac9582acb9886" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRuleBasedCollator.html#a421a131b6330b132d67ac9582acb9886">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>
<p>The <a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> class provides the simple implementation of <a class="el" href="classCollator.html" title="The Collator class performs locale-sensitive string comparison.">Collator</a>, using data-driven tables. </p>
<p>The user can create a customized table-based collation. </p>
<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>
<p><a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> is a thin C++ wrapper over the C implementation. </p>
<p>For more information about the collation service see <a href="http://icu-project.org/userguide/Collate_Intro.html">the users guide</a>. </p>
<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>
<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>
<p>Note, <a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> is not to be subclassed. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classCollator.html" title="The Collator class performs locale-sensitive string comparison.">Collator</a> </dd></dl>
<dl class="version"><dt><b>Version:</b></dt><dd>2.0 11/15/2001 </dd></dl>

<p>Definition at line <a class="el" href="tblcoll_8h_source.html#l00111">111</a> of file <a class="el" href="tblcoll_8h_source.html">tblcoll.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a685723bd1b8a2df19350e5d8dce24c82"></a><!-- doxytag: member="RuleBasedCollator::RuleBasedCollator" ref="a685723bd1b8a2df19350e5d8dce24c82" 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#a3343c1c8a8377277046774691c98d78c">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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> constructor. </p>
<p>This takes the table rules and builds a collation table out of them. Please see <a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> class description for more details on the collation rule syntax. </p>
<dl><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>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classLocale.html" title="A Locale object represents a specific geographical, political, or cultural region...">Locale</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003171">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="acef0c60403fc780975d265cc6d52e3db"></a><!-- doxytag: member="RuleBasedCollator::RuleBasedCollator" ref="acef0c60403fc780975d265cc6d52e3db" 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#a2872c36ad74fc1100331783afe6b38d5">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#a3343c1c8a8377277046774691c98d78c">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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> constructor. </p>
<p>This takes the table rules and builds a collation table out of them. Please see <a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> class description for more details on the collation rule syntax. </p>
<dl><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>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classLocale.html" title="A Locale object represents a specific geographical, political, or cultural region...">Locale</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003172">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="aaae0055ec92464409909fbdd0c7ac589"></a><!-- doxytag: member="RuleBasedCollator::RuleBasedCollator" ref="aaae0055ec92464409909fbdd0c7ac589" 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#acc801048729e684bcabed328be85f77a">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#a3343c1c8a8377277046774691c98d78c">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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> constructor. </p>
<p>This takes the table rules and builds a collation table out of them. Please see <a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> class description for more details on the collation rule syntax. </p>
<dl><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>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classLocale.html" title="A Locale object represents a specific geographical, political, or cultural region...">Locale</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003173">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="ab22f30328e5abbb779b0a7c03b01e09a"></a><!-- doxytag: member="RuleBasedCollator::RuleBasedCollator" ref="ab22f30328e5abbb779b0a7c03b01e09a" 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#a2872c36ad74fc1100331783afe6b38d5">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#acc801048729e684bcabed328be85f77a">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#a3343c1c8a8377277046774691c98d78c">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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> constructor. </p>
<p>This takes the table rules and builds a collation table out of them. Please see <a class="el" href="classRuleBasedCollator.html" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> class description for more details on the collation rule syntax. </p>
<dl><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>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classLocale.html" title="A Locale object represents a specific geographical, political, or cultural region...">Locale</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003174">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a3b002ad7d57e54e1a75d9c6fc7d9c5d5"></a><!-- doxytag: member="RuleBasedCollator::RuleBasedCollator" ref="a3b002ad7d57e54e1a75d9c6fc7d9c5d5" 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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy constructor. </p>
<dl><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" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> object to be copied </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classLocale.html" title="A Locale object represents a specific geographical, political, or cultural region...">Locale</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003175">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a8422ec09bd4b623a3bff4e09c80a28cc"></a><!-- doxytag: member="RuleBasedCollator::RuleBasedCollator" ref="a8422ec09bd4b623a3bff4e09c80a28cc" 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 uint8_t *&nbsp;</td>
          <td class="paramname"> <em>bin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&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#a3343c1c8a8377277046774691c98d78c">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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Opens a collator from a collator binary image created using cloneBinary. </p>
<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. </p>
<dl><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>newly created collator </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classRuleBasedCollator.html#ab4471befc42bf436cb771cef6b184ab7" title="Creates a binary image of a collator.">cloneBinary</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003176">Stable:</a></b></dt><dd>ICU 3.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a2a080eeab83d1864d481fb45c6b82a59"></a><!-- doxytag: member="RuleBasedCollator::~RuleBasedCollator" ref="a2a080eeab83d1864d481fb45c6b82a59" 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><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="afc3925de9f5b4b8c58192721cbb5bc57"></a><!-- doxytag: member="RuleBasedCollator::clone" ref="afc3925de9f5b4b8c58192721cbb5bc57" 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> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>Implements <a class="el" href="classCollator.html#a5b7873505ee31c3745c207cf45d114b4">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="ab4471befc42bf436cb771cef6b184ab7"></a><!-- doxytag: member="RuleBasedCollator::cloneBinary" ref="ab4471befc42bf436cb771cef6b184ab7" args="(uint8_t *buffer, int32_t capacity, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t RuleBasedCollator::cloneBinary </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&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#a3343c1c8a8377277046774691c98d78c">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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a binary image of a collator. </p>
<p>This binary image can be stored and later used to instantiate a collator using ucol_openBinary. This API supports preflighting. </p>
<dl><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>size of the image </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="ucol_8h.html#a467ea0dde69a6990f6ecbb7e30da6003" title="Opens a collator from a collator binary image created using ucol_cloneBinary.">ucol_openBinary</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003195">Stable:</a></b></dt><dd>ICU 3.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a76f0c6651087f795e934ecba2357be36"></a><!-- doxytag: member="RuleBasedCollator::cloneRuleData" ref="a76f0c6651087f795e934ecba2357be36" args="(int32_t &amp;length, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* RuleBasedCollator::cloneRuleData </td>
          <td>(</td>
          <td class="paramtype">int32_t &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#a3343c1c8a8377277046774691c98d78c">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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the binary format of the class's rules. </p>
<p>The format is that of .col files. </p>
<dl><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>memory, owned by the caller, of size 'length' bytes. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003194">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

</div>
</div>
<a class="anchor" id="a3ef0967c8d475d91884193f2d1f60c21"></a><!-- doxytag: member="RuleBasedCollator::compare" ref="a3ef0967c8d475d91884193f2d1f60c21" args="(UCharIterator &amp;sIter, UCharIterator &amp;tIter, 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#a8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a> RuleBasedCollator::compare </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUCharIterator.html">UCharIterator</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>sIter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structUCharIterator.html">UCharIterator</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>tIter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">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> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compares two strings using the <a class="el" href="classCollator.html" title="The Collator class performs locale-sensitive string comparison.">Collator</a>. </p>
<p>Returns whether the first one compares less than/equal to/greater than the second one. This version takes <a class="el" href="structUCharIterator.html" title="C API for code unit iteration.">UCharIterator</a> input. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sIter</em>&nbsp;</td><td>the first ("source") string iterator </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tIter</em>&nbsp;</td><td>the second ("target") string iterator </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>ICU status </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>UCOL_LESS, UCOL_EQUAL or UCOL_GREATER </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003187">Stable:</a></b></dt><dd>ICU 4.2 </dd></dl>

<p>Reimplemented from <a class="el" href="classCollator.html#aade78c5e46f2ce1034e7644b5e375a1d">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a6d410b9e3a7a3c353ca961ffbe6f5fdb"></a><!-- doxytag: member="RuleBasedCollator::compare" ref="a6d410b9e3a7a3c353ca961ffbe6f5fdb" 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#a8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a> RuleBasedCollator::compare </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&nbsp;</td>
          <td class="paramname"> <em>sourceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&nbsp;</td>
          <td class="paramname"> <em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&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#a3343c1c8a8377277046774691c98d78c">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> 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>
<p>Returns information about whether a string array is less than, greater than or equal to another string array. </p>
<dl><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>
  </dd>
</dl>
<dl class="return"><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 class="stable"><dt><b><a class="el" href="stable.html#_stable003186">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#a5f32ec22ac5ed66bff8d7707db9260d7">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="aa93718b20d61f023bd126d5ed74ae1e0"></a><!-- doxytag: member="RuleBasedCollator::compare" ref="aa93718b20d61f023bd126d5ed74ae1e0" 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#a05f22f81363f2613bea18a632b67686f">EComparisonResult</a> RuleBasedCollator::compare </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&nbsp;</td>
          <td class="paramname"> <em>sourceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&nbsp;</td>
          <td class="paramname"> <em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&nbsp;</td>
          <td class="paramname"> <em>targetLength</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> 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>
<p>Returns information about whether a string array is less than, greater than or equal to another string array. </p>
<p>Example of use: </p>
<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" title="The Collator class performs locale-sensitive string comparison.">Collator</a> *myCollation =
 .                         Collator::createInstance(Locale::US, status);
 .       if (<a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure?">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#a05f22f81363f2613bea18a632b67686f" title="LESS is returned if source string is compared to be less than target string in the...">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><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>
  </dd>
</dl>
<dl class="return"><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 class="deprecated"><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#a562ace5a124eafbf623c39e19b564b25">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="acdc1ac2c3ded9364391e9b350d8b3842"></a><!-- doxytag: member="RuleBasedCollator::compare" ref="acdc1ac2c3ded9364391e9b350d8b3842" 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#a8b4e71db8109af87f84ac1576e2b245d">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">int32_t&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#a3343c1c8a8377277046774691c98d78c">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> 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><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>
  </dd>
</dl>
<dl class="return"><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 class="stable"><dt><b><a class="el" href="stable.html#_stable003185">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#ad0ae017f1de0edd0aa10c504ea8bfd58">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a1b7b66b3376e53e186cbf5f60fa4505d"></a><!-- doxytag: member="RuleBasedCollator::compare" ref="a1b7b66b3376e53e186cbf5f60fa4505d" 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#a05f22f81363f2613bea18a632b67686f">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">int32_t&nbsp;</td>
          <td class="paramname"> <em>length</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> 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>
<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. </p>
<dl><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>
  </dd>
</dl>
<dl class="return"><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 class="deprecated"><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#ab33b6fb1fb75bc8bf4d9d8374c9165bf">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="ab011371ceb1f45df5de1a458d7612aa8"></a><!-- doxytag: member="RuleBasedCollator::compare" ref="ab011371ceb1f45df5de1a458d7612aa8" 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#a8b4e71db8109af87f84ac1576e2b245d">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#a3343c1c8a8377277046774691c98d78c">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> 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>
<p>Returns information about whether a string is less than, greater than or equal to another string. </p>
<dl><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>
  </dd>
</dl>
<dl class="return"><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 class="stable"><dt><b><a class="el" href="stable.html#_stable003184">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#a87d53bab5e900d89ad27fd61ea6b985d">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a49b2017fd4861a6361e6b568d887adc2"></a><!-- doxytag: member="RuleBasedCollator::compare" ref="a49b2017fd4861a6361e6b568d887adc2" 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#a05f22f81363f2613bea18a632b67686f">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> 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>
<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. </p>
<dl><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>
  </dd>
</dl>
<dl class="return"><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 class="deprecated"><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#aca611b586fa47a756d2b29996f713182">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a07d693b537314e91abadff6fd712945e"></a><!-- doxytag: member="RuleBasedCollator::createCollationElementIterator" ref="a07d693b537314e91abadff6fd712945e" 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> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a collation element iterator for the source. </p>
<p>The caller of this method is responsible for the memory management of the returned pointer. </p>
<dl><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" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> which produces the characters over which the CollationElementItgerator will iterate. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the collation element iterator of the source using this as the based <a class="el" href="classCollator.html" title="The Collator class performs locale-sensitive string comparison.">Collator</a>. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003183">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

</div>
</div>
<a class="anchor" id="aa00694d6f6463f3f21566ce173462fb6"></a><!-- doxytag: member="RuleBasedCollator::createCollationElementIterator" ref="aa00694d6f6463f3f21566ce173462fb6" 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> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a collation element iterator for the source string. </p>
<p>The caller of this method is responsible for the memory management of the return pointer. </p>
<dl><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" title="The CollationElementIterator class is used as an iterator to walk through each character...">CollationElementIterator</a> will iterate. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><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" title="The Collator class performs locale-sensitive string comparison.">Collator</a>. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003182">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

</div>
</div>
<a class="anchor" id="a4b104673bfec94c58f91478f14bcd286"></a><!-- doxytag: member="RuleBasedCollator::getAttribute" ref="a4b104673bfec94c58f91478f14bcd286" 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#acc801048729e684bcabed328be85f77a">UColAttributeValue</a> RuleBasedCollator::getAttribute </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="ucol_8h.html#a583fbe7fc4a850e2fcc692e766d2826c">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#a3343c1c8a8377277046774691c98d78c">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><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Universal attribute getter. </p>
<dl><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>attribute value </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003198">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#a84c6c013a46196d829f71fa843ae7933">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a36b0939e2dfb7c47fef177e0eec93700"></a><!-- doxytag: member="RuleBasedCollator::getCollationKey" ref="a36b0939e2dfb7c47fef177e0eec93700" 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 <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&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#a3343c1c8a8377277046774691c98d78c">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> 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>
<p>Use a <a class="el" href="classCollationKey.html" title="Collation keys are generated by the Collator class.">CollationKey</a> when you need to do repeated comparisions on the same string. For a single comparison the compare method will be faster. </p>
<dl><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the transformed key. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classCollationKey.html" title="Collation keys are generated by the Collator class.">CollationKey</a> </dd></dl>
<dl class="deprecated"><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#afd733f040738213f0e46847b1e31cf6a">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a509690ecc2c4de4683cc226b4317174f"></a><!-- doxytag: member="RuleBasedCollator::getCollationKey" ref="a509690ecc2c4de4683cc226b4317174f" 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#a3343c1c8a8377277046774691c98d78c">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> 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>
<p>Use a <a class="el" href="classCollationKey.html" title="Collation keys are generated by the Collator class.">CollationKey</a> when you need to do repeated comparisions on the same string. For a single comparison the compare method will be faster. </p>
<dl><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the transformed key. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classCollationKey.html" title="Collation keys are generated by the Collator class.">CollationKey</a> </dd></dl>
<dl class="deprecated"><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#ab48ddb212e12b9ef4ffa7163e2d7810a">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a475f2ae0796fc004c76c10d30b991ca5"></a><!-- doxytag: member="RuleBasedCollator::getDynamicClassID" ref="a475f2ae0796fc004c76c10d30b991ca5" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a> RuleBasedCollator::getDynamicClassID </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a unique class ID POLYMORPHICALLY. </p>
<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#a7cfc8bb7eff90714b83db01091e9d9a1" title="Returns true if argument is the same as this object.">operator==()</a> and <a class="el" href="classRuleBasedCollator.html#afc3925de9f5b4b8c58192721cbb5bc57" title="Makes a deep copy of the object.">clone()</a> methods call this method. </p>
<dl class="return"><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 class="stable"><dt><b><a class="el" href="stable.html#_stable003192">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#aeaf10ab8b08d195a294a9b15aa7195da">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a97cbec9ebe971ca9de1795e1dc3d63b0"></a><!-- doxytag: member="RuleBasedCollator::getLocale" ref="a97cbec9ebe971ca9de1795e1dc3d63b0" 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#adf053345d343f8d82ae080f7a5871f34">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#a3343c1c8a8377277046774691c98d78c">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> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the locale of the <a class="el" href="classCollator.html" title="The Collator class performs locale-sensitive string comparison.">Collator</a>. </p>
<dl><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" title="C API: Locale.">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>
  </dd>
</dl>
<dl class="return"><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 class="deprecated"><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#ab29b8994ac25fd1c5c9f5f58757c0d0c">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a86128484ed00d48e3b646c2f63cdafe6"></a><!-- doxytag: member="RuleBasedCollator::getMaxExpansion" ref="a86128484ed00d48e3b646c2f63cdafe6" args="(int32_t order) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t RuleBasedCollator::getMaxExpansion </td>
          <td>(</td>
          <td class="paramtype">int32_t&nbsp;</td>
          <td class="paramname"> <em>order</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> 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><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>
  </dd>
</dl>
<dl class="return"><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"><dt><b>See also:</b></dt><dd><a class="el" href="classCollationElementIterator.html#ab0cc9747f553df1649021d677061497e" title="Return the maximum length of any expansion sequences that end with the specified...">CollationElementIterator::getMaxExpansion</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003191">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a49272a769d004665e981226e34859154"></a><!-- doxytag: member="RuleBasedCollator::getRules" ref="a49272a769d004665e981226e34859154" 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#a46363290036b8dffd6862c35e7b5872f">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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns current rules. </p>
<p>Delta defines whether full rules are returned or just the tailoring. </p>
<dl><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" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> to store the result rules </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003196">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

</div>
</div>
<a class="anchor" id="a88b7cf04ca345ea2b17199905b869ccd"></a><!-- doxytag: member="RuleBasedCollator::getRules" ref="a88b7cf04ca345ea2b17199905b869ccd" 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> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a9c185650b038aa1d64f01dbc6fdfbfbb"></a><!-- doxytag: member="RuleBasedCollator::getSortKey" ref="a9c185650b038aa1d64f01dbc6fdfbfbb" 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 int32_t RuleBasedCollator::getSortKey </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&nbsp;</td>
          <td class="paramname"> <em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&nbsp;</td>
          <td class="paramname"> <em>sourceLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&nbsp;</td>
          <td class="paramname"> <em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&nbsp;</td>
          <td class="paramname"> <em>resultLength</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> 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><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of bytes needed for storing the sort key </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003206">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#af379292af58ae29650690a02c410bfe1">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a572804441daa3ff64895a75b87991369"></a><!-- doxytag: member="RuleBasedCollator::getSortKey" ref="a572804441daa3ff64895a75b87991369" 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 int32_t 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">uint8_t *&nbsp;</td>
          <td class="paramname"> <em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&nbsp;</td>
          <td class="paramname"> <em>resultLength</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> 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" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>. </p>
<dl><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of bytes needed for storing the sort key </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003205">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#ae524fd43a06d4429e2c76bef35874d4c">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a0662ee51db5ee4ddb20ccd0aade72423"></a><!-- doxytag: member="RuleBasedCollator::getStaticClassID" ref="a0662ee51db5ee4ddb20ccd0aade72423" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a> RuleBasedCollator::getStaticClassID </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a4687629722826dd02625049df0dcff2f"></a><!-- doxytag: member="RuleBasedCollator::getStrength" ref="a4687629722826dd02625049df0dcff2f" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classCollator.html#a2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a> RuleBasedCollator::getStrength </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> 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>
<p>E.g. with strength == SECONDARY, the tertiary difference is ignored </p>
<p>E.g. with strength == PRIMARY, the secondary and tertiary difference are ignored. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the current comparison level. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classRuleBasedCollator.html#a124ab414f1dc23cb3a5acc3f61e6a2d2" title="Sets the minimum strength to be used in comparison or transformation.">RuleBasedCollator::setStrength</a> </dd></dl>
<dl class="deprecated"><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#abbd68b496b6063c5a09a35ce96e4ce93">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a3c6f52fdf71f631fef79dd7b0a71b2f8"></a><!-- doxytag: member="RuleBasedCollator::getTailoredSet" ref="a3c6f52fdf71f631fef79dd7b0a71b2f8" 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#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get an <a class="el" href="classUnicodeSet.html" title="A mutable set of Unicode characters and multicharacter strings.">UnicodeSet</a> that contains all the characters and sequences tailored in this collator. </p>
<dl><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a pointer to a <a class="el" href="classUnicodeSet.html" title="A mutable set of Unicode characters and multicharacter strings.">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 class="stable"><dt><b><a class="el" href="stable.html#_stable003203">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

<p>Reimplemented from <a class="el" href="classCollator.html#a905d1e33377b611a78ec63ae6c15d3c6">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a6333a2d290fb5e3d005c60ebcd4a89e0"></a><!-- doxytag: member="RuleBasedCollator::getUCollator" ref="a6333a2d290fb5e3d005c60ebcd4a89e0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="ucol_8h.html#a3c4eeb412a5fd72762e6245aa75ca081">UCollator</a> * RuleBasedCollator::getUCollator </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get UCollator data struct. </p>
<p>Used only by <a class="el" href="classStringSearch.html" title="StringSearch is a SearchIterator that provides language-sensitive text searching...">StringSearch</a> &amp; intltest. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>UCollator data struct </dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000359">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>

<p>Definition at line <a class="el" href="tblcoll_8h_source.html#l00882">882</a> of file <a class="el" href="tblcoll_8h_source.html">tblcoll.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac064aa96a85249dbf7e51713952d63df"></a><!-- doxytag: member="RuleBasedCollator::getVariableTop" ref="ac064aa96a85249dbf7e51713952d63df" args="(UErrorCode &amp;status) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual uint32_t RuleBasedCollator::getVariableTop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>status</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> 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" title="The Collator class performs locale-sensitive string comparison.">Collator</a>. </p>
<p>Lower 16 bits are undefined and should be ignored. </p>
<dl><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>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003202">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#adff24c669022242ae00dd2c0c460bbf1">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a849f680b92692a38715b6b9fb67be7cf"></a><!-- doxytag: member="RuleBasedCollator::getVersion" ref="a849f680b92692a38715b6b9fb67be7cf" 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#a61caef96ba86d8e86a4031925ea44e94">UVersionInfo</a>&nbsp;</td>
          <td class="paramname"> <em>info</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the version information for a <a class="el" href="classCollator.html" title="The Collator class performs locale-sensitive string comparison.">Collator</a>. </p>
<dl><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>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003190">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#a5884f921390751a8b6f831bd259a7b8d">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a326891c5ae3763fab6e8e00b2289a413"></a><!-- doxytag: member="RuleBasedCollator::hashCode" ref="a326891c5ae3763fab6e8e00b2289a413" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int32_t RuleBasedCollator::hashCode </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> 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"><dt><b>Returns:</b></dt><dd>the hash code. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003188">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#a989efcbd6664efd0a8e738a2c1d3f357">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a87cb492d16807f67f7ff1cf384a2587b"></a><!-- doxytag: member="RuleBasedCollator::operator!=" ref="a87cb492d16807f67f7ff1cf384a2587b" 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#a349ef00011f20ccd1d3b424445681aa5">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> 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><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" title="The Collator class performs locale-sensitive string comparison.">Collator</a> object to be compared </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>returns true if argument is not the same as this object. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003180">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a45ad21c50ac6d159d119d2c3a6dcd425"></a><!-- doxytag: member="RuleBasedCollator::operator=" ref="a45ad21c50ac6d159d119d2c3a6dcd425" 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></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assignment operator. </p>
<dl><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" title="The RuleBasedCollator class provides the simple implementation of Collator, using...">RuleBasedCollator</a> object to compare with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003178">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Reimplemented from <a class="el" href="classCollator.html">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a7cfc8bb7eff90714b83db01091e9d9a1"></a><!-- doxytag: member="RuleBasedCollator::operator==" ref="a7cfc8bb7eff90714b83db01091e9d9a1" 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#a349ef00011f20ccd1d3b424445681aa5">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> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if argument is the same as this object. </p>
<dl><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" title="The Collator class performs locale-sensitive string comparison.">Collator</a> object to be compared. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if arguments is the same as this object. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003179">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="ab58b1bbb98649f03131fe8b4dcd7b109"></a><!-- doxytag: member="RuleBasedCollator::safeClone" ref="ab58b1bbb98649f03131fe8b4dcd7b109" 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><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>Implements <a class="el" href="classCollator.html#aa97156a2a27c2e7fc0fccd0aee61de5a">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="ac1817cbafe92cd3184d8712a8b72d746"></a><!-- doxytag: member="RuleBasedCollator::setAttribute" ref="ac1817cbafe92cd3184d8712a8b72d746" 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#a583fbe7fc4a850e2fcc692e766d2826c">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#acc801048729e684bcabed328be85f77a">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#a3343c1c8a8377277046774691c98d78c">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><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Universal attribute setter. </p>
<dl><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>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003197">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#a132f1d7ad918bc1f4dcb956fd74ea808">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="ac1aa2afb4a6b684d25fb89f7632ba7f9"></a><!-- doxytag: member="RuleBasedCollator::setLocales" ref="ac1aa2afb4a6b684d25fb89f7632ba7f9" args="(const Locale &amp;requestedLocale, const Locale &amp;validLocale, const Locale &amp;actualLocale)" -->
<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>
        </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>actualLocale</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><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><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>
    <tr><td valign="top"></td><td valign="top"><em>actualLocale</em>&nbsp;</td><td>the actual locale </td></tr>
  </table>
  </dd>
</dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000360">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>

<p>Reimplemented from <a class="el" href="classCollator.html#ab480c30e10864f7c46cda00389bd2d34">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a124ab414f1dc23cb3a5acc3f61e6a2d2"></a><!-- doxytag: member="RuleBasedCollator::setStrength" ref="a124ab414f1dc23cb3a5acc3f61e6a2d2" 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#a2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a>&nbsp;</td>
          <td class="paramname"> <em>newStrength</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><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"><dt><b>See also:</b></dt><dd><a class="el" href="classRuleBasedCollator.html#a4687629722826dd02625049df0dcff2f" title="Determines the minimum strength that will be use in comparison or transformation...">RuleBasedCollator::getStrength</a> </dd></dl>
<dl><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>
  </dd>
</dl>
<dl class="deprecated"><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#a0337d30970c7b73a6885a31d6d7d2afa">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="ada7dd7ac546e91febadd47c68df9c102"></a><!-- doxytag: member="RuleBasedCollator::setVariableTop" ref="ada7dd7ac546e91febadd47c68df9c102" 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 uint32_t&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#a3343c1c8a8377277046774691c98d78c">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><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the variable top to a collation element value supplied. </p>
<p>Variable top is set to the upper 16 bits. Lower 16 bits are ignored. </p>
<dl><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>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable003201">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#afc34e06d5d3675e6e6ad26a1ee303690">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a828496b246626823fd96abe7dcf86782"></a><!-- doxytag: member="RuleBasedCollator::setVariableTop" ref="a828496b246626823fd96abe7dcf86782" args="(const UnicodeString varTop, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual uint32_t 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#a3343c1c8a8377277046774691c98d78c">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><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><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" title="UnicodeString is a string class that stores Unicode characters directly and provides...">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>
  </dd>
</dl>
<dl class="return"><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 class="stable"><dt><b><a class="el" href="stable.html#_stable003200">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#adbf3ad5122866f9a16d39ca07779ddce">Collator</a>.</p>

</div>
</div>
<a class="anchor" id="a1049c65c7c51c9540ca91bae25bf9f54"></a><!-- doxytag: member="RuleBasedCollator::setVariableTop" ref="a1049c65c7c51c9540ca91bae25bf9f54" args="(const UChar *varTop, int32_t len, UErrorCode &amp;status)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual uint32_t RuleBasedCollator::setVariableTop </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&nbsp;</td>
          <td class="paramname"> <em>varTop</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&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#a3343c1c8a8377277046774691c98d78c">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><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><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>
  </dd>
</dl>
<dl class="return"><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 class="stable"><dt><b><a class="el" href="stable.html#_stable003199">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Implements <a class="el" href="classCollator.html#ab6e4fc13e278beca8a39539dc326a913">Collator</a>.</p>

</div>
</div>
<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></li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Mar 2010 for ICU 4.4 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>