Sophie

Sophie

distrib > Mageia > 6 > armv5tl > media > core-release > by-pkgid > 3a4e91bde08970529a0aa07935652fe8 > files > 577

icu-doc-58.2-3.mga6.noarch.rpm

<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>ICU 58.2: icu::Transliterator Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ICU 58.2
   &#160;<span id="projectnumber">58.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceicu.html">icu</a></li><li class="navelem"><a class="el" href="classicu_1_1Transliterator.html">Transliterator</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">icu::Transliterator Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p><code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> is an abstract class that transliterates text from one format to another.  
 <a href="classicu_1_1Transliterator.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="translit_8h_source.html">translit.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for icu::Transliterator:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classicu_1_1Transliterator.png" usemap="#icu::Transliterator_map" alt=""/>
  <map id="icu::Transliterator_map" name="icu::Transliterator_map">
<area href="classicu_1_1UObject.html" title="UObject is the common ICU &quot;boilerplate&quot; class. " alt="icu::UObject" shape="rect" coords="0,56,110,80"/>
<area href="classicu_1_1UMemory.html" title="UMemory is the common ICU base class. " alt="icu::UMemory" shape="rect" coords="0,0,110,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionicu_1_1Transliterator_1_1Token.html">Token</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A context integer or pointer for a factory function, passed by value.  <a href="unionicu_1_1Transliterator_1_1Token.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a29bba05524202eb65f3ab188b836662e"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a29bba05524202eb65f3ab188b836662e">Factory</a>) (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;ID, <a class="el" href="unionicu_1_1Transliterator_1_1Token.html">Token</a> context)</td></tr>
<tr class="memdesc:a29bba05524202eb65f3ab188b836662e"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function that creates and returns a <a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a>.  <a href="#a29bba05524202eb65f3ab188b836662e">More...</a><br /></td></tr>
<tr class="separator:a29bba05524202eb65f3ab188b836662e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a678f2f610a8ced267cbe6e16452f583b"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a678f2f610a8ced267cbe6e16452f583b">~Transliterator</a> ()</td></tr>
<tr class="memdesc:a678f2f610a8ced267cbe6e16452f583b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a678f2f610a8ced267cbe6e16452f583b">More...</a><br /></td></tr>
<tr class="separator:a678f2f610a8ced267cbe6e16452f583b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73e238c53cd60555cfa1610dba2e6e91"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a73e238c53cd60555cfa1610dba2e6e91">clone</a> () const </td></tr>
<tr class="memdesc:a73e238c53cd60555cfa1610dba2e6e91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements Cloneable.  <a href="#a73e238c53cd60555cfa1610dba2e6e91">More...</a><br /></td></tr>
<tr class="separator:a73e238c53cd60555cfa1610dba2e6e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ac045fc0a40b068ef65389c77cf5afe"><td class="memItemLeft" align="right" valign="top">virtual int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a5ac045fc0a40b068ef65389c77cf5afe">transliterate</a> (<a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;text, int32_t start, int32_t limit) const </td></tr>
<tr class="memdesc:a5ac045fc0a40b068ef65389c77cf5afe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transliterates a segment of a string, with optional filtering.  <a href="#a5ac045fc0a40b068ef65389c77cf5afe">More...</a><br /></td></tr>
<tr class="separator:a5ac045fc0a40b068ef65389c77cf5afe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61625c0052347fa8f4dcfb9458d68f3f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a61625c0052347fa8f4dcfb9458d68f3f">transliterate</a> (<a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;text) const </td></tr>
<tr class="memdesc:a61625c0052347fa8f4dcfb9458d68f3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transliterates an entire string in place.  <a href="#a61625c0052347fa8f4dcfb9458d68f3f">More...</a><br /></td></tr>
<tr class="separator:a61625c0052347fa8f4dcfb9458d68f3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeaa85a2ac130bc5c9fd006f741749d2b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#aeaa85a2ac130bc5c9fd006f741749d2b">transliterate</a> (<a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;text, <a class="el" href="structUTransPosition.html">UTransPosition</a> &amp;index, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;insertion, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const </td></tr>
<tr class="memdesc:aeaa85a2ac130bc5c9fd006f741749d2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transliterates the portion of the text buffer that can be transliterated unambiguosly after new text has been inserted, typically as a result of a keyboard event.  <a href="#aeaa85a2ac130bc5c9fd006f741749d2b">More...</a><br /></td></tr>
<tr class="separator:aeaa85a2ac130bc5c9fd006f741749d2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa812595ae66e1e6a9bb93f383b3ef442"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#aa812595ae66e1e6a9bb93f383b3ef442">transliterate</a> (<a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;text, <a class="el" href="structUTransPosition.html">UTransPosition</a> &amp;index, <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> insertion, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const </td></tr>
<tr class="memdesc:aa812595ae66e1e6a9bb93f383b3ef442"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transliterates the portion of the text buffer that can be transliterated unambiguosly after a new character has been inserted, typically as a result of a keyboard event.  <a href="#aa812595ae66e1e6a9bb93f383b3ef442">More...</a><br /></td></tr>
<tr class="separator:aa812595ae66e1e6a9bb93f383b3ef442"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a185ea05f0ef29ea697ff3f9b7966a11d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a185ea05f0ef29ea697ff3f9b7966a11d">transliterate</a> (<a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;text, <a class="el" href="structUTransPosition.html">UTransPosition</a> &amp;index, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const </td></tr>
<tr class="memdesc:a185ea05f0ef29ea697ff3f9b7966a11d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transliterates the portion of the text buffer that can be transliterated unambiguosly.  <a href="#a185ea05f0ef29ea697ff3f9b7966a11d">More...</a><br /></td></tr>
<tr class="separator:a185ea05f0ef29ea697ff3f9b7966a11d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a650c2e4be551935cff9d802829bd12f5"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a650c2e4be551935cff9d802829bd12f5">finishTransliteration</a> (<a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;text, <a class="el" href="structUTransPosition.html">UTransPosition</a> &amp;index) const </td></tr>
<tr class="memdesc:a650c2e4be551935cff9d802829bd12f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finishes any pending transliterations that were waiting for more characters.  <a href="#a650c2e4be551935cff9d802829bd12f5">More...</a><br /></td></tr>
<tr class="separator:a650c2e4be551935cff9d802829bd12f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acac9fed19519ac79e6ed2af1dc629242"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#acac9fed19519ac79e6ed2af1dc629242">filteredTransliterate</a> (<a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;text, <a class="el" href="structUTransPosition.html">UTransPosition</a> &amp;index, <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> incremental) const </td></tr>
<tr class="memdesc:acac9fed19519ac79e6ed2af1dc629242"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transliterate a substring of text, as specified by index, taking filters into account.  <a href="#acac9fed19519ac79e6ed2af1dc629242">More...</a><br /></td></tr>
<tr class="separator:acac9fed19519ac79e6ed2af1dc629242"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99690a0aecae430e475226cd90221c1c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a99690a0aecae430e475226cd90221c1c">getMaximumContextLength</a> (void) const </td></tr>
<tr class="memdesc:a99690a0aecae430e475226cd90221c1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of the longest context required by this transliterator.  <a href="#a99690a0aecae430e475226cd90221c1c">More...</a><br /></td></tr>
<tr class="separator:a99690a0aecae430e475226cd90221c1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace6576e349f659ba54f5a0de6443e5d8"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#ace6576e349f659ba54f5a0de6443e5d8">getID</a> (void) const </td></tr>
<tr class="memdesc:ace6576e349f659ba54f5a0de6443e5d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a programmatic identifier for this transliterator.  <a href="#ace6576e349f659ba54f5a0de6443e5d8">More...</a><br /></td></tr>
<tr class="separator:ace6576e349f659ba54f5a0de6443e5d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39e7f0d5be10528351781daf0dab3539"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classicu_1_1UnicodeFilter.html">UnicodeFilter</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a39e7f0d5be10528351781daf0dab3539">getFilter</a> (void) const </td></tr>
<tr class="memdesc:a39e7f0d5be10528351781daf0dab3539"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the filter used by this transliterator, or <code>NULL</code> if this transliterator uses no filter.  <a href="#a39e7f0d5be10528351781daf0dab3539">More...</a><br /></td></tr>
<tr class="separator:a39e7f0d5be10528351781daf0dab3539"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef892d1559e6aac829778e4b570b144e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classicu_1_1UnicodeFilter.html">UnicodeFilter</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#aef892d1559e6aac829778e4b570b144e">orphanFilter</a> (void)</td></tr>
<tr class="memdesc:aef892d1559e6aac829778e4b570b144e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the filter used by this transliterator, or <code>NULL</code> if this transliterator uses no filter.  <a href="#aef892d1559e6aac829778e4b570b144e">More...</a><br /></td></tr>
<tr class="separator:aef892d1559e6aac829778e4b570b144e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b5fa9e9d642a88661d25ff9b4a54f1e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a1b5fa9e9d642a88661d25ff9b4a54f1e">adoptFilter</a> (<a class="el" href="classicu_1_1UnicodeFilter.html">UnicodeFilter</a> *adoptedFilter)</td></tr>
<tr class="memdesc:a1b5fa9e9d642a88661d25ff9b4a54f1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the filter used by this transliterator.  <a href="#a1b5fa9e9d642a88661d25ff9b4a54f1e">More...</a><br /></td></tr>
<tr class="separator:a1b5fa9e9d642a88661d25ff9b4a54f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cb1c798bd30c60f77eb6b78c0019797"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a5cb1c798bd30c60f77eb6b78c0019797">createInverse</a> (<a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const </td></tr>
<tr class="memdesc:a5cb1c798bd30c60f77eb6b78c0019797"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns this transliterator's inverse.  <a href="#a5cb1c798bd30c60f77eb6b78c0019797">More...</a><br /></td></tr>
<tr class="separator:a5cb1c798bd30c60f77eb6b78c0019797"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22e9e649d1caac9ecf1488268d39c72f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a22e9e649d1caac9ecf1488268d39c72f">toRules</a> (<a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;result, <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> escapeUnprintable) const </td></tr>
<tr class="memdesc:a22e9e649d1caac9ecf1488268d39c72f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a rule string that can be passed to <a class="el" href="classicu_1_1Transliterator.html#a08d8d7309df6737525425e80941f80aa" title="Returns a Transliterator object constructed from the given rule string. ">createFromRules()</a> to recreate this transliterator.  <a href="#a22e9e649d1caac9ecf1488268d39c72f">More...</a><br /></td></tr>
<tr class="separator:a22e9e649d1caac9ecf1488268d39c72f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d331f1921596a028a499cc82f9d3705"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a7d331f1921596a028a499cc82f9d3705">countElements</a> () const </td></tr>
<tr class="memdesc:a7d331f1921596a028a499cc82f9d3705"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of elements that make up this transliterator.  <a href="#a7d331f1921596a028a499cc82f9d3705">More...</a><br /></td></tr>
<tr class="separator:a7d331f1921596a028a499cc82f9d3705"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e12b15e608de71191093590645b134b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a7e12b15e608de71191093590645b134b">getElement</a> (int32_t index, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;ec) const </td></tr>
<tr class="memdesc:a7e12b15e608de71191093590645b134b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an element that makes up this transliterator.  <a href="#a7e12b15e608de71191093590645b134b">More...</a><br /></td></tr>
<tr class="separator:a7e12b15e608de71191093590645b134b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25ae9a95edc4984c16a8a684b53aa690"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classicu_1_1UnicodeSet.html">UnicodeSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a25ae9a95edc4984c16a8a684b53aa690">getSourceSet</a> (<a class="el" href="classicu_1_1UnicodeSet.html">UnicodeSet</a> &amp;result) const </td></tr>
<tr class="memdesc:a25ae9a95edc4984c16a8a684b53aa690"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the set of all characters that may be modified in the input text by this <a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a>.  <a href="#a25ae9a95edc4984c16a8a684b53aa690">More...</a><br /></td></tr>
<tr class="separator:a25ae9a95edc4984c16a8a684b53aa690"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f0e799fed7987514964b59742037be1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a2f0e799fed7987514964b59742037be1">handleGetSourceSet</a> (<a class="el" href="classicu_1_1UnicodeSet.html">UnicodeSet</a> &amp;result) const </td></tr>
<tr class="memdesc:a2f0e799fed7987514964b59742037be1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Framework method that returns the set of all characters that may be modified in the input text by this <a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a>, ignoring the effect of this object's filter.  <a href="#a2f0e799fed7987514964b59742037be1">More...</a><br /></td></tr>
<tr class="separator:a2f0e799fed7987514964b59742037be1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f87f60df3b846a93ce0bfea01f46735"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classicu_1_1UnicodeSet.html">UnicodeSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a9f87f60df3b846a93ce0bfea01f46735">getTargetSet</a> (<a class="el" href="classicu_1_1UnicodeSet.html">UnicodeSet</a> &amp;result) const </td></tr>
<tr class="memdesc:a9f87f60df3b846a93ce0bfea01f46735"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the set of all characters that may be generated as replacement text by this transliterator.  <a href="#a9f87f60df3b846a93ce0bfea01f46735">More...</a><br /></td></tr>
<tr class="separator:a9f87f60df3b846a93ce0bfea01f46735"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01c17b907013ae67f8896330dbf4fce3"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="uobject_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a01c17b907013ae67f8896330dbf4fce3">getDynamicClassID</a> (void) const =0</td></tr>
<tr class="memdesc:a01c17b907013ae67f8896330dbf4fce3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a unique class ID <b>polymorphically</b>.  <a href="#a01c17b907013ae67f8896330dbf4fce3">More...</a><br /></td></tr>
<tr class="separator:a01c17b907013ae67f8896330dbf4fce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classicu_1_1UObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classicu_1_1UObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classicu_1_1UObject.html">icu::UObject</a></td></tr>
<tr class="memitem:af10026497704f510d3d1f2eff50acb18 inherit pub_methods_classicu_1_1UObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1UObject.html#af10026497704f510d3d1f2eff50acb18">~UObject</a> ()</td></tr>
<tr class="memdesc:af10026497704f510d3d1f2eff50acb18 inherit pub_methods_classicu_1_1UObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#af10026497704f510d3d1f2eff50acb18">More...</a><br /></td></tr>
<tr class="separator:af10026497704f510d3d1f2eff50acb18 inherit pub_methods_classicu_1_1UObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a49abcadb1ea3faffe13696268c324a30"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="unionicu_1_1Transliterator_1_1Token.html">Token</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a49abcadb1ea3faffe13696268c324a30">integerToken</a> (int32_t)</td></tr>
<tr class="memdesc:a49abcadb1ea3faffe13696268c324a30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a token containing an integer.  <a href="#a49abcadb1ea3faffe13696268c324a30">More...</a><br /></td></tr>
<tr class="separator:a49abcadb1ea3faffe13696268c324a30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9e20455d2f8e4b4b570cf4443badae3"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="unionicu_1_1Transliterator_1_1Token.html">Token</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#ad9e20455d2f8e4b4b570cf4443badae3">pointerToken</a> (void *)</td></tr>
<tr class="memdesc:ad9e20455d2f8e4b4b570cf4443badae3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a token containing a pointer.  <a href="#ad9e20455d2f8e4b4b570cf4443badae3">More...</a><br /></td></tr>
<tr class="separator:ad9e20455d2f8e4b4b570cf4443badae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac27a6b8a37cce8cf43fee501a12cdc7d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#ac27a6b8a37cce8cf43fee501a12cdc7d">getDisplayName</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;ID, <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;result)</td></tr>
<tr class="memdesc:ac27a6b8a37cce8cf43fee501a12cdc7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a name for this transliterator that is appropriate for display to the user in the default locale.  <a href="#ac27a6b8a37cce8cf43fee501a12cdc7d">More...</a><br /></td></tr>
<tr class="separator:ac27a6b8a37cce8cf43fee501a12cdc7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a063b37d4712228f5e2a9da69e0cc9f19"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a063b37d4712228f5e2a9da69e0cc9f19">getDisplayName</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;ID, const <a class="el" href="classicu_1_1Locale.html">Locale</a> &amp;inLocale, <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;result)</td></tr>
<tr class="memdesc:a063b37d4712228f5e2a9da69e0cc9f19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a name for this transliterator that is appropriate for display to the user in the given locale.  <a href="#a063b37d4712228f5e2a9da69e0cc9f19">More...</a><br /></td></tr>
<tr class="separator:a063b37d4712228f5e2a9da69e0cc9f19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad257ac1b111f802a7ea55dd4e98dd2da"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#ad257ac1b111f802a7ea55dd4e98dd2da">createInstance</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;ID, <a class="el" href="utrans_8h.html#a04f480e9e8e40f0d8067521668dc06ec">UTransDirection</a> dir, <a class="el" href="structUParseError.html">UParseError</a> &amp;parseError, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>
<tr class="memdesc:ad257ac1b111f802a7ea55dd4e98dd2da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> object given its ID.  <a href="#ad257ac1b111f802a7ea55dd4e98dd2da">More...</a><br /></td></tr>
<tr class="separator:ad257ac1b111f802a7ea55dd4e98dd2da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2df2a1a1d8593088674774eb8357dcc3"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a2df2a1a1d8593088674774eb8357dcc3">createInstance</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;ID, <a class="el" href="utrans_8h.html#a04f480e9e8e40f0d8067521668dc06ec">UTransDirection</a> dir, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>
<tr class="memdesc:a2df2a1a1d8593088674774eb8357dcc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> object given its ID.  <a href="#a2df2a1a1d8593088674774eb8357dcc3">More...</a><br /></td></tr>
<tr class="separator:a2df2a1a1d8593088674774eb8357dcc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08d8d7309df6737525425e80941f80aa"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a08d8d7309df6737525425e80941f80aa">createFromRules</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;ID, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;rules, <a class="el" href="utrans_8h.html#a04f480e9e8e40f0d8067521668dc06ec">UTransDirection</a> dir, <a class="el" href="structUParseError.html">UParseError</a> &amp;parseError, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status)</td></tr>
<tr class="memdesc:a08d8d7309df6737525425e80941f80aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> object constructed from the given rule string.  <a href="#a08d8d7309df6737525425e80941f80aa">More...</a><br /></td></tr>
<tr class="separator:a08d8d7309df6737525425e80941f80aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac43e9b3e1a7192ad38e11b58492cf5e7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#ac43e9b3e1a7192ad38e11b58492cf5e7">registerFactory</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;id, <a class="el" href="classicu_1_1Transliterator.html#a29bba05524202eb65f3ab188b836662e">Factory</a> factory, <a class="el" href="unionicu_1_1Transliterator_1_1Token.html">Token</a> context)</td></tr>
<tr class="memdesc:ac43e9b3e1a7192ad38e11b58492cf5e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a factory function that creates transliterators of a given ID.  <a href="#ac43e9b3e1a7192ad38e11b58492cf5e7">More...</a><br /></td></tr>
<tr class="separator:ac43e9b3e1a7192ad38e11b58492cf5e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9304cfff31e760183811d90a7efe1b7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#ae9304cfff31e760183811d90a7efe1b7">registerInstance</a> (<a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> *adoptedObj)</td></tr>
<tr class="memdesc:ae9304cfff31e760183811d90a7efe1b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers an instance <code>obj</code> of a subclass of <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> with the system.  <a href="#ae9304cfff31e760183811d90a7efe1b7">More...</a><br /></td></tr>
<tr class="separator:ae9304cfff31e760183811d90a7efe1b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a02398fdd93dc09c1e8523ab53473ab"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a6a02398fdd93dc09c1e8523ab53473ab">registerAlias</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;aliasID, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;realID)</td></tr>
<tr class="memdesc:a6a02398fdd93dc09c1e8523ab53473ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers an ID string as an alias of another ID string.  <a href="#a6a02398fdd93dc09c1e8523ab53473ab">More...</a><br /></td></tr>
<tr class="separator:a6a02398fdd93dc09c1e8523ab53473ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e78a0feaa57019b776c93d2cf925771"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a3e78a0feaa57019b776c93d2cf925771">unregister</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;ID)</td></tr>
<tr class="memdesc:a3e78a0feaa57019b776c93d2cf925771"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unregisters a transliterator or class.  <a href="#a3e78a0feaa57019b776c93d2cf925771">More...</a><br /></td></tr>
<tr class="separator:a3e78a0feaa57019b776c93d2cf925771"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6c6f6e5a282d6adaadaedfc584bd4bf"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classicu_1_1StringEnumeration.html">StringEnumeration</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#ad6c6f6e5a282d6adaadaedfc584bd4bf">getAvailableIDs</a> (<a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;ec)</td></tr>
<tr class="memdesc:ad6c6f6e5a282d6adaadaedfc584bd4bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a <a class="el" href="classicu_1_1StringEnumeration.html" title="Base class for &#39;pure&#39; C++ implementations of uenum api. ">StringEnumeration</a> over the IDs available at the time of the call, including user-registered IDs.  <a href="#ad6c6f6e5a282d6adaadaedfc584bd4bf">More...</a><br /></td></tr>
<tr class="separator:ad6c6f6e5a282d6adaadaedfc584bd4bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cb11faac495ec9dd362a3d6af812678"><td class="memItemLeft" align="right" valign="top">static int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a5cb11faac495ec9dd362a3d6af812678">countAvailableSources</a> (void)</td></tr>
<tr class="memdesc:a5cb11faac495ec9dd362a3d6af812678"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of registered source specifiers.  <a href="#a5cb11faac495ec9dd362a3d6af812678">More...</a><br /></td></tr>
<tr class="separator:a5cb11faac495ec9dd362a3d6af812678"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a399eb5bd72a4b83b0893909bf2c47302"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a399eb5bd72a4b83b0893909bf2c47302">getAvailableSource</a> (int32_t index, <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;result)</td></tr>
<tr class="memdesc:a399eb5bd72a4b83b0893909bf2c47302"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a registered source specifier.  <a href="#a399eb5bd72a4b83b0893909bf2c47302">More...</a><br /></td></tr>
<tr class="separator:a399eb5bd72a4b83b0893909bf2c47302"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa153a1aee64f5edf79d0988e7a1704fc"><td class="memItemLeft" align="right" valign="top">static int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#aa153a1aee64f5edf79d0988e7a1704fc">countAvailableTargets</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;source)</td></tr>
<tr class="memdesc:aa153a1aee64f5edf79d0988e7a1704fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of registered target specifiers for a given source specifier.  <a href="#aa153a1aee64f5edf79d0988e7a1704fc">More...</a><br /></td></tr>
<tr class="separator:aa153a1aee64f5edf79d0988e7a1704fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0aaae0c9a8368550249ac7208f8faf6a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a0aaae0c9a8368550249ac7208f8faf6a">getAvailableTarget</a> (int32_t index, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;source, <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;result)</td></tr>
<tr class="memdesc:a0aaae0c9a8368550249ac7208f8faf6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a registered target specifier for a given source.  <a href="#a0aaae0c9a8368550249ac7208f8faf6a">More...</a><br /></td></tr>
<tr class="separator:a0aaae0c9a8368550249ac7208f8faf6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d4c22c1ffd041ac87bc031116d71a9a"><td class="memItemLeft" align="right" valign="top">static int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a6d4c22c1ffd041ac87bc031116d71a9a">countAvailableVariants</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;source, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;target)</td></tr>
<tr class="memdesc:a6d4c22c1ffd041ac87bc031116d71a9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of registered variant specifiers for a given source-target pair.  <a href="#a6d4c22c1ffd041ac87bc031116d71a9a">More...</a><br /></td></tr>
<tr class="separator:a6d4c22c1ffd041ac87bc031116d71a9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a814a011d4f46b0132eb421fb242be1a8"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a814a011d4f46b0132eb421fb242be1a8">getAvailableVariant</a> (int32_t index, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;source, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;target, <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;result)</td></tr>
<tr class="memdesc:a814a011d4f46b0132eb421fb242be1a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a registered variant specifier for a given source-target pair.  <a href="#a814a011d4f46b0132eb421fb242be1a8">More...</a><br /></td></tr>
<tr class="separator:a814a011d4f46b0132eb421fb242be1a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d7dd4dacf15fc7ed4b98f0ef511dbf9"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="uobject_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a0d7dd4dacf15fc7ed4b98f0ef511dbf9">getStaticClassID</a> (void)</td></tr>
<tr class="memdesc:a0d7dd4dacf15fc7ed4b98f0ef511dbf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the class ID for this class.  <a href="#a0d7dd4dacf15fc7ed4b98f0ef511dbf9">More...</a><br /></td></tr>
<tr class="separator:a0d7dd4dacf15fc7ed4b98f0ef511dbf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33df01cb78ea5a074afd67fe0f1f821c"><td class="memItemLeft" align="right" valign="top">static int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a33df01cb78ea5a074afd67fe0f1f821c">countAvailableIDs</a> (void)</td></tr>
<tr class="memdesc:a33df01cb78ea5a074afd67fe0f1f821c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of IDs currently registered with the system.  <a href="#a33df01cb78ea5a074afd67fe0f1f821c">More...</a><br /></td></tr>
<tr class="separator:a33df01cb78ea5a074afd67fe0f1f821c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7216704cc39447e5d169f0adfcaa729e"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a7216704cc39447e5d169f0adfcaa729e">getAvailableID</a> (int32_t index)</td></tr>
<tr class="memdesc:a7216704cc39447e5d169f0adfcaa729e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the index-th available ID.  <a href="#a7216704cc39447e5d169f0adfcaa729e">More...</a><br /></td></tr>
<tr class="separator:a7216704cc39447e5d169f0adfcaa729e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:aadc84e004209e8bd7cf504326d198ad4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#aadc84e004209e8bd7cf504326d198ad4">Transliterator</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;ID, <a class="el" href="classicu_1_1UnicodeFilter.html">UnicodeFilter</a> *adoptedFilter)</td></tr>
<tr class="memdesc:aadc84e004209e8bd7cf504326d198ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#aadc84e004209e8bd7cf504326d198ad4">More...</a><br /></td></tr>
<tr class="separator:aadc84e004209e8bd7cf504326d198ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac07961d020a69219af9901a869ac81ab"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#ac07961d020a69219af9901a869ac81ab">Transliterator</a> (const <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> &amp;)</td></tr>
<tr class="memdesc:ac07961d020a69219af9901a869ac81ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="#ac07961d020a69219af9901a869ac81ab">More...</a><br /></td></tr>
<tr class="separator:ac07961d020a69219af9901a869ac81ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7db77de8033a75a27489e788669d1c42"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a7db77de8033a75a27489e788669d1c42">operator=</a> (const <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> &amp;)</td></tr>
<tr class="memdesc:a7db77de8033a75a27489e788669d1c42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator.  <a href="#a7db77de8033a75a27489e788669d1c42">More...</a><br /></td></tr>
<tr class="separator:a7db77de8033a75a27489e788669d1c42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e51de341e73ee7dbae9a41f1723c073"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a7e51de341e73ee7dbae9a41f1723c073">handleTransliterate</a> (<a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;text, <a class="el" href="structUTransPosition.html">UTransPosition</a> &amp;pos, <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> incremental) const =0</td></tr>
<tr class="memdesc:a7e51de341e73ee7dbae9a41f1723c073"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract method that concrete subclasses define to implement their transliteration algorithm.  <a href="#a7e51de341e73ee7dbae9a41f1723c073">More...</a><br /></td></tr>
<tr class="separator:a7e51de341e73ee7dbae9a41f1723c073"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb5cbdb330feb80d397b7ed2027544d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#acb5cbdb330feb80d397b7ed2027544d7">setMaximumContextLength</a> (int32_t maxContextLength)</td></tr>
<tr class="memdesc:acb5cbdb330feb80d397b7ed2027544d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method for subclasses to use to set the maximum context length.  <a href="#acb5cbdb330feb80d397b7ed2027544d7">More...</a><br /></td></tr>
<tr class="separator:acb5cbdb330feb80d397b7ed2027544d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a566ce517aa30abced9e3a6ec551ded9c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a566ce517aa30abced9e3a6ec551ded9c">setID</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;id)</td></tr>
<tr class="memdesc:a566ce517aa30abced9e3a6ec551ded9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the ID of this transliterators.  <a href="#a566ce517aa30abced9e3a6ec551ded9c">More...</a><br /></td></tr>
<tr class="separator:a566ce517aa30abced9e3a6ec551ded9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr class="memitem:a5565a051031668be79377c9552ea07dc"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a5565a051031668be79377c9552ea07dc">createBasicInstance</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;id, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> *canon)</td></tr>
<tr class="memdesc:a5565a051031668be79377c9552ea07dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a transliterator from a basic ID.  <a href="#a5565a051031668be79377c9552ea07dc">More...</a><br /></td></tr>
<tr class="separator:a5565a051031668be79377c9552ea07dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7f6e4e53ae606e24146f08e7ff53092"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#ae7f6e4e53ae606e24146f08e7ff53092">_registerFactory</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;id, <a class="el" href="classicu_1_1Transliterator.html#a29bba05524202eb65f3ab188b836662e">Factory</a> factory, <a class="el" href="unionicu_1_1Transliterator_1_1Token.html">Token</a> context)</td></tr>
<tr class="separator:ae7f6e4e53ae606e24146f08e7ff53092"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdd078a2891a0616039b7751b6bc1d51"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#afdd078a2891a0616039b7751b6bc1d51">_registerInstance</a> (<a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> *adoptedObj)</td></tr>
<tr class="separator:afdd078a2891a0616039b7751b6bc1d51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a368761f139356ae6d3f19e2bf9ee0fa2"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a368761f139356ae6d3f19e2bf9ee0fa2">_registerAlias</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;aliasID, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;realID)</td></tr>
<tr class="separator:a368761f139356ae6d3f19e2bf9ee0fa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a970822e31e1ef8cff5981eb44e338b37"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a970822e31e1ef8cff5981eb44e338b37">_registerSpecialInverse</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;target, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;inverseTarget, <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> bidirectional)</td></tr>
<tr class="memdesc:a970822e31e1ef8cff5981eb44e338b37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register two targets as being inverses of one another.  <a href="#a970822e31e1ef8cff5981eb44e338b37">More...</a><br /></td></tr>
<tr class="separator:a970822e31e1ef8cff5981eb44e338b37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9970d321d92d75c11753629bf079b644"><td class="memItemLeft" align="right" valign="top">static int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a9970d321d92d75c11753629bf079b644">_countAvailableSources</a> (void)</td></tr>
<tr class="memdesc:a9970d321d92d75c11753629bf079b644"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-mutexed internal method.  <a href="#a9970d321d92d75c11753629bf079b644">More...</a><br /></td></tr>
<tr class="separator:a9970d321d92d75c11753629bf079b644"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bfffcca10343b4e86d349025a54a6ce"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a1bfffcca10343b4e86d349025a54a6ce">_getAvailableSource</a> (int32_t index, <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;result)</td></tr>
<tr class="memdesc:a1bfffcca10343b4e86d349025a54a6ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-mutexed internal method.  <a href="#a1bfffcca10343b4e86d349025a54a6ce">More...</a><br /></td></tr>
<tr class="separator:a1bfffcca10343b4e86d349025a54a6ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bf0c8ec68a09512b0dccc7cd9e6b728"><td class="memItemLeft" align="right" valign="top">static int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a9bf0c8ec68a09512b0dccc7cd9e6b728">_countAvailableTargets</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;source)</td></tr>
<tr class="memdesc:a9bf0c8ec68a09512b0dccc7cd9e6b728"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-mutexed internal method.  <a href="#a9bf0c8ec68a09512b0dccc7cd9e6b728">More...</a><br /></td></tr>
<tr class="separator:a9bf0c8ec68a09512b0dccc7cd9e6b728"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f000b88d7cbe417e1d33c8337822543"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#a2f000b88d7cbe417e1d33c8337822543">_getAvailableTarget</a> (int32_t index, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;source, <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;result)</td></tr>
<tr class="memdesc:a2f000b88d7cbe417e1d33c8337822543"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-mutexed internal method.  <a href="#a2f000b88d7cbe417e1d33c8337822543">More...</a><br /></td></tr>
<tr class="separator:a2f000b88d7cbe417e1d33c8337822543"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affefb18335c67a0793704a58b51b2ce2"><td class="memItemLeft" align="right" valign="top">static int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#affefb18335c67a0793704a58b51b2ce2">_countAvailableVariants</a> (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;source, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;target)</td></tr>
<tr class="memdesc:affefb18335c67a0793704a58b51b2ce2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-mutexed internal method.  <a href="#affefb18335c67a0793704a58b51b2ce2">More...</a><br /></td></tr>
<tr class="separator:affefb18335c67a0793704a58b51b2ce2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af54cce4191dcd0e0cd579a0d528014b8"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1Transliterator.html#af54cce4191dcd0e0cd579a0d528014b8">_getAvailableVariant</a> (int32_t index, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;source, const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;target, <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;result)</td></tr>
<tr class="memdesc:af54cce4191dcd0e0cd579a0d528014b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-mutexed internal method.  <a href="#af54cce4191dcd0e0cd579a0d528014b8">More...</a><br /></td></tr>
<tr class="separator:af54cce4191dcd0e0cd579a0d528014b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a0e174a80ed1c050f681e0cc48c04d56a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e174a80ed1c050f681e0cc48c04d56a"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>TransliteratorParser</b></td></tr>
<tr class="separator:a0e174a80ed1c050f681e0cc48c04d56a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada751b004e893bdce5054390887ce849"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada751b004e893bdce5054390887ce849"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>TransliteratorIDParser</b></td></tr>
<tr class="separator:ada751b004e893bdce5054390887ce849"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41ea065358492de72098ab5599c2f43e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a41ea065358492de72098ab5599c2f43e"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>TransliteratorAlias</b></td></tr>
<tr class="separator:a41ea065358492de72098ab5599c2f43e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> is an abstract class that transliterates text from one format to another. </p>
<p>The most common kind of transliterator is a script, or alphabet, transliterator. For example, a Russian to Latin transliterator changes Russian text written in Cyrillic characters to phonetically equivalent Latin characters. It does not <em>translate</em> Russian to English! Transliteration, unlike translation, operates on characters, without reference to the meanings of words and sentences.</p>
<p>Although script conversion is its most common use, a transliterator can actually perform a more general class of tasks. In fact, <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> defines a very general API which specifies only that a segment of the input text is replaced by new text. The particulars of this conversion are determined entirely by subclasses of <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code>.</p>
<p><b>Transliterators are stateless</b></p>
<p><code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> objects are <em>stateless</em>; they retain no information between calls to <code><a class="el" href="classicu_1_1Transliterator.html#a5ac045fc0a40b068ef65389c77cf5afe" title="Transliterates a segment of a string, with optional filtering. ">transliterate()</a></code>. (However, this does <em>not</em> mean that threads may share transliterators without synchronizing them. Transliterators are not immutable, so they must be synchronized when shared between threads.) This might seem to limit the complexity of the transliteration operation. In practice, subclasses perform complex transliterations by delaying the replacement of text until it is known that no other replacements are possible. In other words, although the <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> objects are stateless, the source text itself embodies all the needed information, and delayed operation allows arbitrary complexity.</p>
<p><b>Batch transliteration</b></p>
<p>The simplest way to perform transliteration is all at once, on a string of existing text. This is referred to as <em>batch</em> transliteration. For example, given a string <code>input</code> and a transliterator <code>t</code>, the call</p>
<p> <blockquote><code>String result = t.transliterate(input); </code> </blockquote></p>
<p>will transliterate it and return the result. Other methods allow the client to specify a substring to be transliterated and to use <a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> objects instead of strings, in order to preserve out-of-band information (such as text styles).</p>
<p><b>Keyboard transliteration</b></p>
<p>Somewhat more involved is <em>keyboard</em>, or incremental transliteration. This is the transliteration of text that is arriving from some source (typically the user's keyboard) one character at a time, or in some other piecemeal fashion.</p>
<p>In keyboard transliteration, a <code><a class="el" href="classicu_1_1Replaceable.html" title="Replaceable is an abstract base class representing a string of characters that supports the replaceme...">Replaceable</a></code> buffer stores the text. As text is inserted, as much as possible is transliterated on the fly. This means a GUI that displays the contents of the buffer may show text being modified as each new character arrives.</p>
<p>Consider the simple <code>RuleBasedTransliterator</code>:</p>
<p> <blockquote><code> th&gt;{theta}<br />
 t&gt;{tau} </code> </blockquote></p>
<p>When the user types 't', nothing will happen, since the transliterator is waiting to see if the next character is 'h'. To remedy this, we introduce the notion of a cursor, marked by a '|' in the output string:</p>
<p> <blockquote><code> t&gt;|{tau}<br />
 {tau}h&gt;{theta} </code> </blockquote></p>
<p>Now when the user types 't', tau appears, and if the next character is 'h', the tau changes to a theta. This is accomplished by maintaining a cursor position (independent of the insertion point, and invisible in the GUI) across calls to <code><a class="el" href="classicu_1_1Transliterator.html#a5ac045fc0a40b068ef65389c77cf5afe" title="Transliterates a segment of a string, with optional filtering. ">transliterate()</a></code>. Typically, the cursor will be coincident with the insertion point, but in a case like the one above, it will precede the insertion point.</p>
<p>Keyboard transliteration methods maintain a set of three indices that are updated with each call to <code><a class="el" href="classicu_1_1Transliterator.html#a5ac045fc0a40b068ef65389c77cf5afe" title="Transliterates a segment of a string, with optional filtering. ">transliterate()</a></code>, including the cursor, start, and limit. Since these indices are changed by the method, they are passed in an <code>int[]</code> array. The <code>START</code> index marks the beginning of the substring that the transliterator will look at. It is advanced as text becomes committed (but it is not the committed index; that's the <code>CURSOR</code>). The <code>CURSOR</code> index, described above, marks the point at which the transliterator last stopped, either because it reached the end, or because it required more characters to disambiguate between possible inputs. The <code>CURSOR</code> can also be explicitly set by rules in a <code>RuleBasedTransliterator</code>. Any characters before the <code>CURSOR</code> index are frozen; future keyboard transliteration calls within this input sequence will not change them. New text is inserted at the <code>LIMIT</code> index, which marks the end of the substring that the transliterator looks at.</p>
<p>Because keyboard transliteration assumes that more characters are to arrive, it is conservative in its operation. It only transliterates when it can do so unambiguously. Otherwise it waits for more characters to arrive. When the client code knows that no more characters are forthcoming, perhaps because the user has performed some input termination operation, then it should call <code><a class="el" href="classicu_1_1Transliterator.html#a650c2e4be551935cff9d802829bd12f5" title="Finishes any pending transliterations that were waiting for more characters. ">finishTransliteration()</a></code> to complete any pending transliterations.</p>
<p><b>Inverses</b></p>
<p>Pairs of transliterators may be inverses of one another. For example, if transliterator <b>A</b> transliterates characters by incrementing their Unicode value (so "abc" -&gt; "def"), and transliterator <b>B</b> decrements character values, then <b>A</b> is an inverse of <b>B</b> and vice versa. If we compose <b>A</b> with <b>B</b> in a compound transliterator, the result is the indentity transliterator, that is, a transliterator that does not change its input text.</p>
<p>The <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> method <code>getInverse()</code> returns a transliterator's inverse, if one exists, or <code>null</code> otherwise. However, the result of <code>getInverse()</code> usually will <em>not</em> be a true mathematical inverse. This is because true inverse transliterators are difficult to formulate. For example, consider two transliterators: <b>AB</b>, which transliterates the character 'A' to 'B', and <b>BA</b>, which transliterates 'B' to 'A'. It might seem that these are exact inverses, since</p>
<p> <blockquote>"A" x <b>AB</b> -&gt; "B"<br />
 "B" x <b>BA</b> -&gt; "A" </blockquote></p>
<p>where 'x' represents transliteration. However,</p>
<p> <blockquote>"ABCD" x <b>AB</b> -&gt; "BBCD"<br />
 "BBCD" x <b>BA</b> -&gt; "AACD" </blockquote></p>
<p>so <b>AB</b> composed with <b>BA</b> is not the identity. Nonetheless, <b>BA</b> may be usefully considered to be <b>AB</b>'s inverse, and it is on this basis that <b>AB</b><code>.getInverse()</code> could legitimately return <b>BA</b>.</p>
<p><b>IDs and display names</b></p>
<p>A transliterator is designated by a short identifier string or <em>ID</em>. IDs follow the format <em>source-destination</em>, where <em>source</em> describes the entity being replaced, and <em>destination</em> describes the entity replacing <em>source</em>. The entities may be the names of scripts, particular sequences of characters, or whatever else it is that the transliterator converts to or from. For example, a transliterator from Russian to Latin might be named "Russian-Latin". A transliterator from keyboard escape sequences to Latin-1 characters might be named "KeyboardEscape-Latin1". By convention, system entity names are in English, with the initial letters of words capitalized; user entity names may follow any format so long as they do not contain dashes.</p>
<p>In addition to programmatic IDs, transliterator objects have display names for presentation in user interfaces, returned by <a class="el" href="classicu_1_1Transliterator.html#ac27a6b8a37cce8cf43fee501a12cdc7d">getDisplayName</a>.</p>
<p><b>Factory methods and registration</b></p>
<p>In general, client code should use the factory method <a class="el" href="classicu_1_1Transliterator.html#ad257ac1b111f802a7ea55dd4e98dd2da">createInstance</a> to obtain an instance of a transliterator given its ID. Valid IDs may be enumerated using <code><a class="el" href="classicu_1_1Transliterator.html#ad6c6f6e5a282d6adaadaedfc584bd4bf" title="Return a StringEnumeration over the IDs available at the time of the call, including user-registered ...">getAvailableIDs()</a></code>. Since transliterators are mutable, multiple calls to <a class="el" href="classicu_1_1Transliterator.html#ad257ac1b111f802a7ea55dd4e98dd2da">createInstance</a> with the same ID will return distinct objects.</p>
<p>In addition to the system transliterators registered at startup, user transliterators may be registered by calling <code><a class="el" href="classicu_1_1Transliterator.html#ae9304cfff31e760183811d90a7efe1b7" title="Registers an instance obj of a subclass of Transliterator with the system. ">registerInstance()</a></code> at run time. A registered instance acts a template; future calls to <a class="el" href="classicu_1_1Transliterator.html#ad257ac1b111f802a7ea55dd4e98dd2da">createInstance</a> with the ID of the registered object return clones of that object. Thus any object passed to <code><a class="el" href="classicu_1_1Transliterator.html#ae9304cfff31e760183811d90a7efe1b7" title="Registers an instance obj of a subclass of Transliterator with the system. ">registerInstance()</a></code> must implement <code><a class="el" href="classicu_1_1Transliterator.html#a73e238c53cd60555cfa1610dba2e6e91" title="Implements Cloneable. ">clone()</a></code> propertly. To register a transliterator subclass without instantiating it (until it is needed), users may call <a class="el" href="classicu_1_1Transliterator.html#ac43e9b3e1a7192ad38e11b58492cf5e7">registerFactory</a>. In this case, the objects are instantiated by invoking the zero-argument public constructor of the class.</p>
<p><b>Subclassing</b></p>
<p>Subclasses must implement the abstract method <code><a class="el" href="classicu_1_1Transliterator.html#a7e51de341e73ee7dbae9a41f1723c073" title="Abstract method that concrete subclasses define to implement their transliteration algorithm...">handleTransliterate()</a></code>. </p>
<p>Subclasses should override the <code><a class="el" href="classicu_1_1Transliterator.html#a5ac045fc0a40b068ef65389c77cf5afe" title="Transliterates a segment of a string, with optional filtering. ">transliterate()</a></code> method taking a <code><a class="el" href="classicu_1_1Replaceable.html" title="Replaceable is an abstract base class representing a string of characters that supports the replaceme...">Replaceable</a></code> and the <code><a class="el" href="classicu_1_1Transliterator.html#a5ac045fc0a40b068ef65389c77cf5afe" title="Transliterates a segment of a string, with optional filtering. ">transliterate()</a></code> method taking a <code>String</code> and <code>StringBuffer</code> if the performance of these methods can be improved over the performance obtained by the default implementations in this class.</p>
<dl class="section author"><dt>Author</dt><dd>Alan Liu </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004562">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Definition at line <a class="el" href="translit_8h_source.html#l00243">243</a> of file <a class="el" href="translit_8h_source.html">translit.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="a29bba05524202eb65f3ab188b836662e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a>*( * icu::Transliterator::Factory) (const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;ID, <a class="el" href="unionicu_1_1Transliterator_1_1Token.html">Token</a> context)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A function that creates and returns a <a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a>. </p>
<p>When invoked, it will be passed the ID string that is being instantiated, together with the context pointer that was passed in when the factory function was first registered. Many factory functions will ignore both parameters, however, functions that are registered to more than one ID may use the ID or the context parameter to parameterize the transliterator they create. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ID</td><td>the string identifier for this transliterator </td></tr>
    <tr><td class="paramname">context</td><td>a context pointer that will be stored and later passed to the factory function when an ID matching the registration ID is being instantiated with this factory. </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004564">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

<p>Definition at line <a class="el" href="translit_8h_source.html#l00313">313</a> of file <a class="el" href="translit_8h_source.html">translit.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aadc84e004209e8bd7cf504326d198ad4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">icu::Transliterator::Transliterator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>ID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeFilter.html">UnicodeFilter</a> *&#160;</td>
          <td class="paramname"><em>adoptedFilter</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ID</td><td>the string identifier for this transliterator </td></tr>
    <tr><td class="paramname">adoptedFilter</td><td>the filter. Any character for which <code>filter.contains()</code> returns <code>false</code> will not be altered by this transliterator. If <code>filter</code> is <code>null</code> then no filtering is applied. </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004565">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

</div>
</div>
<a class="anchor" id="ac07961d020a69219af9901a869ac81ab"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">icu::Transliterator::Transliterator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copy constructor. </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004566">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a678f2f610a8ced267cbe6e16452f583b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual icu::Transliterator::~Transliterator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a9970d321d92d75c11753629bf079b644"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int32_t icu::Transliterator::_countAvailableSources </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Non-mutexed internal method. </p>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000448">Internal:</a></b></dt><dd>Do not use.</dd></dl>
<p>This API is for internal use only. </p>

</div>
</div>
<a class="anchor" id="a9bf0c8ec68a09512b0dccc7cd9e6b728"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int32_t icu::Transliterator::_countAvailableTargets </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Non-mutexed internal method. </p>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000450">Internal:</a></b></dt><dd>Do not use.</dd></dl>
<p>This API is for internal use only. </p>

</div>
</div>
<a class="anchor" id="affefb18335c67a0793704a58b51b2ce2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int32_t icu::Transliterator::_countAvailableVariants </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>target</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Non-mutexed internal method. </p>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000452">Internal:</a></b></dt><dd>Do not use.</dd></dl>
<p>This API is for internal use only. </p>

</div>
</div>
<a class="anchor" id="a1bfffcca10343b4e86d349025a54a6ce"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a>&amp; icu::Transliterator::_getAvailableSource </td>
          <td>(</td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Non-mutexed internal method. </p>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000449">Internal:</a></b></dt><dd>Do not use.</dd></dl>
<p>This API is for internal use only. </p>

</div>
</div>
<a class="anchor" id="a2f000b88d7cbe417e1d33c8337822543"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a>&amp; icu::Transliterator::_getAvailableTarget </td>
          <td>(</td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Non-mutexed internal method. </p>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000451">Internal:</a></b></dt><dd>Do not use.</dd></dl>
<p>This API is for internal use only. </p>

</div>
</div>
<a class="anchor" id="af54cce4191dcd0e0cd579a0d528014b8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a>&amp; icu::Transliterator::_getAvailableVariant </td>
          <td>(</td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Non-mutexed internal method. </p>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000453">Internal:</a></b></dt><dd>Do not use.</dd></dl>
<p>This API is for internal use only. </p>

</div>
</div>
<a class="anchor" id="a368761f139356ae6d3f19e2bf9ee0fa2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void icu::Transliterator::_registerAlias </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>aliasID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>realID</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000446">Internal:</a></b></dt><dd>Do not use.</dd></dl>
<p>This API is for internal use only. </p>

</div>
</div>
<a class="anchor" id="ae7f6e4e53ae606e24146f08e7ff53092"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void icu::Transliterator::_registerFactory </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classicu_1_1Transliterator.html#a29bba05524202eb65f3ab188b836662e">Factory</a>&#160;</td>
          <td class="paramname"><em>factory</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="unionicu_1_1Transliterator_1_1Token.html">Token</a>&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">id</td><td>the ID being registered </td></tr>
    <tr><td class="paramname">factory</td><td>a function pointer that will be copied and called later when the given ID is passed to <a class="el" href="classicu_1_1Transliterator.html#ad257ac1b111f802a7ea55dd4e98dd2da" title="Returns a Transliterator object given its ID. ">createInstance()</a> </td></tr>
    <tr><td class="paramname">context</td><td>a context pointer that will be stored and later passed to the factory function when an ID matching the registration ID is being instantiated with this factory. </td></tr>
  </table>
  </dd>
</dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000444">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>

</div>
</div>
<a class="anchor" id="afdd078a2891a0616039b7751b6bc1d51"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void icu::Transliterator::_registerInstance </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> *&#160;</td>
          <td class="paramname"><em>adoptedObj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000445">Internal:</a></b></dt><dd>Do not use.</dd></dl>
<p>This API is for internal use only. </p>

</div>
</div>
<a class="anchor" id="a970822e31e1ef8cff5981eb44e338b37"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void icu::Transliterator::_registerSpecialInverse </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>inverseTarget</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&#160;</td>
          <td class="paramname"><em>bidirectional</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Register two targets as being inverses of one another. </p>
<p>For example, calling registerSpecialInverse("NFC", "NFD", true) causes <a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a> to form the following inverse relationships:</p>
<pre>NFC =&gt; NFD
Any-NFC =&gt; Any-NFD
NFD =&gt; NFC
Any-NFD =&gt; Any-NFC</pre><p>(Without the special inverse registration, the inverse of NFC would be NFC-Any.) Note that NFD is shorthand for Any-NFD, but that the presence or absence of "Any-" is preserved.</p>
<p>The relationship is symmetrical; registering (a, b) is equivalent to registering (b, a).</p>
<p>The relevant IDs must still be registered separately as factories or classes.</p>
<p>Only the targets are specified. Special inverses always have the form Any-Target1 &lt;=&gt; Any-Target2. The target should have canonical casing (the casing desired to be produced when an inverse is formed) and should contain no whitespace or other extraneous characters.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">target</td><td>the target against which to register the inverse </td></tr>
    <tr><td class="paramname">inverseTarget</td><td>the inverse of target, that is Any-target.getInverse() =&gt; Any-inverseTarget </td></tr>
    <tr><td class="paramname">bidirectional</td><td>if true, register the reverse relation as well, that is, Any-inverseTarget.getInverse() =&gt; Any-target </td></tr>
  </table>
  </dd>
</dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000447">Internal:</a></b></dt><dd>Do not use. This API is for internal use only. </dd></dl>

</div>
</div>
<a class="anchor" id="a1b5fa9e9d642a88661d25ff9b4a54f1e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void icu::Transliterator::adoptFilter </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeFilter.html">UnicodeFilter</a> *&#160;</td>
          <td class="paramname"><em>adoptedFilter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Changes the filter used by this transliterator. </p>
<p>If the filter is set to <code>null</code> then no filtering will occur.</p>
<p>Callers must take care if a transliterator is in use by multiple threads. The filter should not be changed by one thread while another thread may be transliterating. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">adoptedFilter</td><td>the new filter to be adopted. </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004586">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a73e238c53cd60555cfa1610dba2e6e91"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a>* icu::Transliterator::clone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements Cloneable. </p>
<p>All subclasses are encouraged to implement this method if it is possible and reasonable to do so. Subclasses that are to be registered with the system using <code><a class="el" href="classicu_1_1Transliterator.html#ae9304cfff31e760183811d90a7efe1b7" title="Registers an instance obj of a subclass of Transliterator with the system. ">registerInstance()</a></code> are required to implement this method. If a subclass does not implement <a class="el" href="classicu_1_1Transliterator.html#a73e238c53cd60555cfa1610dba2e6e91" title="Implements Cloneable. ">clone()</a> properly and is registered with the system using <a class="el" href="classicu_1_1Transliterator.html#ae9304cfff31e760183811d90a7efe1b7" title="Registers an instance obj of a subclass of Transliterator with the system. ">registerInstance()</a>, then the default <a class="el" href="classicu_1_1Transliterator.html#a73e238c53cd60555cfa1610dba2e6e91" title="Implements Cloneable. ">clone()</a> implementation will return null, and calls to <a class="el" href="classicu_1_1Transliterator.html#ad257ac1b111f802a7ea55dd4e98dd2da" title="Returns a Transliterator object given its ID. ">createInstance()</a> will fail.</p>
<dl class="section return"><dt>Returns</dt><dd>a copy of the object. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Transliterator.html#ae9304cfff31e760183811d90a7efe1b7" title="Registers an instance obj of a subclass of Transliterator with the system. ">registerInstance</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004570">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a33df01cb78ea5a074afd67fe0f1f821c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int32_t icu::Transliterator::countAvailableIDs </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the number of IDs currently registered with the system. </p>
<p>To retrieve the actual IDs, call getAvailableID(i) with i from 0 to <a class="el" href="classicu_1_1Transliterator.html#a33df01cb78ea5a074afd67fe0f1f821c" title="Return the number of IDs currently registered with the system. ">countAvailableIDs()</a> - 1. </p><dl class="section return"><dt>Returns</dt><dd>the number of IDs currently registered with the system. </dd></dl>
<dl class="obsolete"><dt><b><a class="el" href="obsolete.html#_obsolete000004">Obsolete:</a></b></dt><dd>ICU 3.4 use <a class="el" href="classicu_1_1Transliterator.html#ad6c6f6e5a282d6adaadaedfc584bd4bf" title="Return a StringEnumeration over the IDs available at the time of the call, including user-registered ...">getAvailableIDs()</a> instead </dd></dl>

</div>
</div>
<a class="anchor" id="a5cb11faac495ec9dd362a3d6af812678"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int32_t icu::Transliterator::countAvailableSources </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the number of registered source specifiers. </p>
<dl class="section return"><dt>Returns</dt><dd>the number of registered source specifiers. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004602">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="aa153a1aee64f5edf79d0988e7a1704fc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int32_t icu::Transliterator::countAvailableTargets </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the number of registered target specifiers for a given source specifier. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the given source specifier. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of registered target specifiers for a given source specifier. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004604">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a6d4c22c1ffd041ac87bc031116d71a9a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int32_t icu::Transliterator::countAvailableVariants </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>target</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the number of registered variant specifiers for a given source-target pair. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the source specifiers. </td></tr>
    <tr><td class="paramname">target</td><td>the target specifiers. </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004606">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a7d331f1921596a028a499cc82f9d3705"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t icu::Transliterator::countElements </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the number of elements that make up this transliterator. </p>
<p>For example, if the transliterator "NFD;Jamo-Latin;Latin-Greek" were created, the return value of this method would be 3.</p>
<p>If this transliterator is not composed of other transliterators, then this method returns 1. </p><dl class="section return"><dt>Returns</dt><dd>the number of transliterators that compose this transliterator, or 1 if this transliterator is not composed of multiple transliterators </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004592">Stable:</a></b></dt><dd>ICU 3.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a5565a051031668be79377c9552ea07dc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a>* icu::Transliterator::createBasicInstance </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> *&#160;</td>
          <td class="paramname"><em>canon</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a transliterator from a basic ID. </p>
<p>This is an ID containing only the forward direction source, target, and variant. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">id</td><td>a basic ID of the form S-T or S-T/V. </td></tr>
    <tr><td class="paramname">canon</td><td>canonical ID to assign to the object, or NULL to leave the ID unchanged </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a newly created <a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a> or null if the ID is invalid. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004568">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a08d8d7309df6737525425e80941f80aa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a>* icu::Transliterator::createFromRules </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>ID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>rules</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utrans_8h.html#a04f480e9e8e40f0d8067521668dc06ec">UTransDirection</a>&#160;</td>
          <td class="paramname"><em>dir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structUParseError.html">UParseError</a> &amp;&#160;</td>
          <td class="paramname"><em>parseError</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> object constructed from the given rule string. </p>
<p>This will be a RuleBasedTransliterator, if the rule string contains only rules, or a CompoundTransliterator, if it contains ID blocks, or a NullTransliterator, if it contains ID blocks which parse as empty for the given direction. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ID</td><td>the id for the transliterator. </td></tr>
    <tr><td class="paramname">rules</td><td>rules, separated by ';' </td></tr>
    <tr><td class="paramname">dir</td><td>either FORWARD or REVERSE. </td></tr>
    <tr><td class="paramname">parseError</td><td>Struct to recieve information on position of error if an error is encountered </td></tr>
    <tr><td class="paramname">status</td><td>Output param set to success/failure code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004590">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="ad257ac1b111f802a7ea55dd4e98dd2da"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a>* icu::Transliterator::createInstance </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>ID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utrans_8h.html#a04f480e9e8e40f0d8067521668dc06ec">UTransDirection</a>&#160;</td>
          <td class="paramname"><em>dir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structUParseError.html">UParseError</a> &amp;&#160;</td>
          <td class="paramname"><em>parseError</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> object given its ID. </p>
<p>The ID must be either a system transliterator ID or a ID registered using <code><a class="el" href="classicu_1_1Transliterator.html#ae9304cfff31e760183811d90a7efe1b7" title="Registers an instance obj of a subclass of Transliterator with the system. ">registerInstance()</a></code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ID</td><td>a valid ID, as enumerated by <code><a class="el" href="classicu_1_1Transliterator.html#ad6c6f6e5a282d6adaadaedfc584bd4bf" title="Return a StringEnumeration over the IDs available at the time of the call, including user-registered ...">getAvailableIDs()</a></code> </td></tr>
    <tr><td class="paramname">dir</td><td>either FORWARD or REVERSE. </td></tr>
    <tr><td class="paramname">parseError</td><td>Struct to recieve information on position of error if an error is encountered </td></tr>
    <tr><td class="paramname">status</td><td>Output param to filled in with a success or an error. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> object with the given ID </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Transliterator.html#ae9304cfff31e760183811d90a7efe1b7" title="Registers an instance obj of a subclass of Transliterator with the system. ">registerInstance</a> </dd>
<dd>
<a class="el" href="classicu_1_1Transliterator.html#ad6c6f6e5a282d6adaadaedfc584bd4bf" title="Return a StringEnumeration over the IDs available at the time of the call, including user-registered ...">getAvailableIDs</a> </dd>
<dd>
<a class="el" href="classicu_1_1Transliterator.html#ace6576e349f659ba54f5a0de6443e5d8" title="Returns a programmatic identifier for this transliterator. ">getID</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004588">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a2df2a1a1d8593088674774eb8357dcc3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a>* icu::Transliterator::createInstance </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>ID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utrans_8h.html#a04f480e9e8e40f0d8067521668dc06ec">UTransDirection</a>&#160;</td>
          <td class="paramname"><em>dir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> object given its ID. </p>
<p>The ID must be either a system transliterator ID or a ID registered using <code><a class="el" href="classicu_1_1Transliterator.html#ae9304cfff31e760183811d90a7efe1b7" title="Registers an instance obj of a subclass of Transliterator with the system. ">registerInstance()</a></code>. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ID</td><td>a valid ID, as enumerated by <code><a class="el" href="classicu_1_1Transliterator.html#ad6c6f6e5a282d6adaadaedfc584bd4bf" title="Return a StringEnumeration over the IDs available at the time of the call, including user-registered ...">getAvailableIDs()</a></code> </td></tr>
    <tr><td class="paramname">dir</td><td>either FORWARD or REVERSE. </td></tr>
    <tr><td class="paramname">status</td><td>Output param to filled in with a success or an error. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> object with the given ID </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004589">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a5cb1c798bd30c60f77eb6b78c0019797"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classicu_1_1Transliterator.html">Transliterator</a>* icu::Transliterator::createInverse </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&#160;</td>
          <td class="paramname"><em>status</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns this transliterator's inverse. </p>
<p>See the class documentation for details. This implementation simply inverts the two entities in the ID and attempts to retrieve the resulting transliterator. That is, if <code><a class="el" href="classicu_1_1Transliterator.html#ace6576e349f659ba54f5a0de6443e5d8" title="Returns a programmatic identifier for this transliterator. ">getID()</a></code> returns "A-B", then this method will return the result of <code>createInstance("B-A")</code>, or <code>null</code> if that call fails.</p>
<p>Subclasses with knowledge of their inverse may wish to override this method.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">status</td><td>Output param to filled in with a success or an error. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a transliterator that is an inverse, not necessarily exact, of this transliterator, or <code>null</code> if no such transliterator is registered. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Transliterator.html#ae9304cfff31e760183811d90a7efe1b7" title="Registers an instance obj of a subclass of Transliterator with the system. ">registerInstance</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004587">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="acac9fed19519ac79e6ed2af1dc629242"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void icu::Transliterator::filteredTransliterate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structUTransPosition.html">UTransPosition</a> &amp;&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&#160;</td>
          <td class="paramname"><em>incremental</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Transliterate a substring of text, as specified by index, taking filters into account. </p>
<p>This method is for subclasses that need to delegate to another transliterator, such as CompoundTransliterator. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">text</td><td>the text to be transliterated </td></tr>
    <tr><td class="paramname">index</td><td>the position indices </td></tr>
    <tr><td class="paramname">incremental</td><td>if TRUE, then assume more characters may be inserted at index.limit, and postpone processing to accomodate future incoming characters </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004578">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a650c2e4be551935cff9d802829bd12f5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void icu::Transliterator::finishTransliteration </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structUTransPosition.html">UTransPosition</a> &amp;&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Finishes any pending transliterations that were waiting for more characters. </p>
<p>Clients should call this method as the last call after a sequence of one or more calls to <code><a class="el" href="classicu_1_1Transliterator.html#a5ac045fc0a40b068ef65389c77cf5afe" title="Transliterates a segment of a string, with optional filtering. ">transliterate()</a></code>. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">text</td><td>the buffer holding transliterated and untransliterated text. </td></tr>
    <tr><td class="paramname">index</td><td>the array of indices previously passed to <a class="el" href="classicu_1_1Transliterator.html#a5ac045fc0a40b068ef65389c77cf5afe">transliterate</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004576">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a7216704cc39447e5d169f0adfcaa729e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a>&amp; icu::Transliterator::getAvailableID </td>
          <td>(</td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the index-th available ID. </p>
<p>index must be between 0 and <a class="el" href="classicu_1_1Transliterator.html#a33df01cb78ea5a074afd67fe0f1f821c" title="Return the number of IDs currently registered with the system. ">countAvailableIDs()</a> - 1, inclusive. If index is out of range, the result of getAvailableID(0) is returned. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">index</td><td>the given ID index. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the index-th available ID. index must be between 0 and <a class="el" href="classicu_1_1Transliterator.html#a33df01cb78ea5a074afd67fe0f1f821c" title="Return the number of IDs currently registered with the system. ">countAvailableIDs()</a> - 1, inclusive. If index is out of range, the result of getAvailableID(0) is returned. </dd></dl>
<dl class="obsolete"><dt><b><a class="el" href="obsolete.html#_obsolete000005">Obsolete:</a></b></dt><dd>ICU 3.4 use <a class="el" href="classicu_1_1Transliterator.html#ad6c6f6e5a282d6adaadaedfc584bd4bf" title="Return a StringEnumeration over the IDs available at the time of the call, including user-registered ...">getAvailableIDs()</a> instead; this function is not thread safe, since it returns a reference to storage that may become invalid if another thread calls unregister </dd></dl>

</div>
</div>
<a class="anchor" id="ad6c6f6e5a282d6adaadaedfc584bd4bf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classicu_1_1StringEnumeration.html">StringEnumeration</a>* icu::Transliterator::getAvailableIDs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&#160;</td>
          <td class="paramname"><em>ec</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return a <a class="el" href="classicu_1_1StringEnumeration.html" title="Base class for &#39;pure&#39; C++ implementations of uenum api. ">StringEnumeration</a> over the IDs available at the time of the call, including user-registered IDs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ec</td><td>input-output error code </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a newly-created <a class="el" href="classicu_1_1StringEnumeration.html" title="Base class for &#39;pure&#39; C++ implementations of uenum api. ">StringEnumeration</a> over the transliterators available at the time of the call. The caller should delete this object when done using it. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004601">Stable:</a></b></dt><dd>ICU 3.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a399eb5bd72a4b83b0893909bf2c47302"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a>&amp; icu::Transliterator::getAvailableSource </td>
          <td>(</td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return a registered source specifier. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">index</td><td>which specifier to return, from 0 to n-1, where n = <a class="el" href="classicu_1_1Transliterator.html#a5cb11faac495ec9dd362a3d6af812678" title="Return the number of registered source specifiers. ">countAvailableSources()</a> </td></tr>
    <tr><td class="paramname">result</td><td>fill-in paramter to receive the source specifier. If index is out of range, result will be empty. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>reference to result </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004603">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a0aaae0c9a8368550249ac7208f8faf6a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a>&amp; icu::Transliterator::getAvailableTarget </td>
          <td>(</td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return a registered target specifier for a given source. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">index</td><td>which specifier to return, from 0 to n-1, where n = countAvailableTargets(source) </td></tr>
    <tr><td class="paramname">source</td><td>the source specifier </td></tr>
    <tr><td class="paramname">result</td><td>fill-in paramter to receive the target specifier. If source is invalid or if index is out of range, result will be empty. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>reference to result </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004605">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a814a011d4f46b0132eb421fb242be1a8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a>&amp; icu::Transliterator::getAvailableVariant </td>
          <td>(</td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return a registered variant specifier for a given source-target pair. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">index</td><td>which specifier to return, from 0 to n-1, where n = countAvailableVariants(source, target) </td></tr>
    <tr><td class="paramname">source</td><td>the source specifier </td></tr>
    <tr><td class="paramname">target</td><td>the target specifier </td></tr>
    <tr><td class="paramname">result</td><td>fill-in paramter to receive the variant specifier. If source is invalid or if target is invalid or if index is out of range, result will be empty. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>reference to result </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004607">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="ac27a6b8a37cce8cf43fee501a12cdc7d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a>&amp; icu::Transliterator::getDisplayName </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>ID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a name for this transliterator that is appropriate for display to the user in the default locale. </p>
<p>See <a class="el" href="classicu_1_1Transliterator.html#ac27a6b8a37cce8cf43fee501a12cdc7d">getDisplayName</a> for details. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ID</td><td>the string identifier for this transliterator </td></tr>
    <tr><td class="paramname">result</td><td>Output param to receive the display name </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A reference to 'result'. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004582">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a063b37d4712228f5e2a9da69e0cc9f19"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a>&amp; icu::Transliterator::getDisplayName </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>ID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1Locale.html">Locale</a> &amp;&#160;</td>
          <td class="paramname"><em>inLocale</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a name for this transliterator that is appropriate for display to the user in the given locale. </p>
<p>This name is taken from the locale resource data in the standard manner of the <code>java.text</code> package.</p>
<p>If no localized names exist in the system resource bundles, a name is synthesized using a localized <code><a class="el" href="classicu_1_1MessageFormat.html">MessageFormat</a></code> pattern from the resource data. The arguments to this pattern are an integer followed by one or two strings. The integer is the number of strings, either 1 or 2. The strings are formed by splitting the ID for this transliterator at the first '-'. If there is no '-', then the entire ID forms the only string. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ID</td><td>the string identifier for this transliterator </td></tr>
    <tr><td class="paramname">inLocale</td><td>the <a class="el" href="classicu_1_1Locale.html" title="A Locale object represents a specific geographical, political, or cultural region. ">Locale</a> in which the display name should be localized. </td></tr>
    <tr><td class="paramname">result</td><td>Output param to receive the display name </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A reference to 'result'. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004583">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a01c17b907013ae67f8896330dbf4fce3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="uobject_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a> icu::Transliterator::getDynamicClassID </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a unique class ID <b>polymorphically</b>. </p>
<p>This method is to implement a simple version of RTTI, since not all C++ compilers support genuine RTTI. Polymorphic <a class="el" href="namespaceicu.html#a1c2f6ca43e636f38d1a3291eb851e9f0" title="Global operator == for StringPiece. ">operator==()</a> and <a class="el" href="classicu_1_1Transliterator.html#a73e238c53cd60555cfa1610dba2e6e91" title="Implements Cloneable. ">clone()</a> methods call this method.</p>
<p>Concrete subclasses of <a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a> must use the UOBJECT_DEFINE_RTTI_IMPLEMENTATION macro from <a class="el" href="uobject_8h.html" title="C++ API: Common ICU base class UObject. ">uobject.h</a> to provide the RTTI functions.</p>
<dl class="section return"><dt>Returns</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#_stable004610">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Reimplemented from <a class="el" href="classicu_1_1UObject.html#a1aa93096e880907080b503ff1fb0f8bc">icu::UObject</a>.</p>

</div>
</div>
<a class="anchor" id="a7e12b15e608de71191093590645b134b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a>&amp; icu::Transliterator::getElement </td>
          <td>(</td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&#160;</td>
          <td class="paramname"><em>ec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return an element that makes up this transliterator. </p>
<p>For example, if the transliterator "NFD;Jamo-Latin;Latin-Greek" were created, the return value of this method would be one of the three transliterator objects that make up that transliterator: [NFD, Jamo-Latin, Latin-Greek].</p>
<p>If this transliterator is not composed of other transliterators, then this method will return a reference to this transliterator when given the index 0. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">index</td><td>a value from 0..<a class="el" href="classicu_1_1Transliterator.html#a7d331f1921596a028a499cc82f9d3705" title="Return the number of elements that make up this transliterator. ">countElements()</a>-1 indicating the transliterator to return </td></tr>
    <tr><td class="paramname">ec</td><td>input-output error code </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>one of the transliterators that makes up this transliterator, if this transliterator is made up of multiple transliterators, otherwise a reference to this object if given an index of 0 </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004593">Stable:</a></b></dt><dd>ICU 3.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a39e7f0d5be10528351781daf0dab3539"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classicu_1_1UnicodeFilter.html">UnicodeFilter</a>* icu::Transliterator::getFilter </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the filter used by this transliterator, or <code>NULL</code> if this transliterator uses no filter. </p>
<dl class="section return"><dt>Returns</dt><dd>the filter used by this transliterator, or <code>NULL</code> if this transliterator uses no filter. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004584">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="ace6576e349f659ba54f5a0de6443e5d8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a>&amp; icu::Transliterator::getID </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a programmatic identifier for this transliterator. </p>
<p>If this identifier is passed to <code><a class="el" href="classicu_1_1Transliterator.html#ad257ac1b111f802a7ea55dd4e98dd2da" title="Returns a Transliterator object given its ID. ">createInstance()</a></code>, it will return this object, if it has been registered. </p><dl class="section return"><dt>Returns</dt><dd>a programmatic identifier for this transliterator. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Transliterator.html#ae9304cfff31e760183811d90a7efe1b7" title="Registers an instance obj of a subclass of Transliterator with the system. ">registerInstance</a> </dd>
<dd>
<a class="el" href="classicu_1_1Transliterator.html#ac43e9b3e1a7192ad38e11b58492cf5e7" title="Registers a factory function that creates transliterators of a given ID. ">registerFactory</a> </dd>
<dd>
<a class="el" href="classicu_1_1Transliterator.html#ad6c6f6e5a282d6adaadaedfc584bd4bf" title="Return a StringEnumeration over the IDs available at the time of the call, including user-registered ...">getAvailableIDs</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004581">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a99690a0aecae430e475226cd90221c1c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int32_t icu::Transliterator::getMaximumContextLength </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the length of the longest context required by this transliterator. </p>
<p>This is <em>preceding</em> context. The default implementation supplied by <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> returns zero; subclasses that use preceding context should override this method to return the correct value. For example, if a transliterator translates "ddd" (where d is any digit) to "555" when preceded by "(ddd)", then the preceding context length is 5, the length of "(ddd)".</p>
<dl class="section return"><dt>Returns</dt><dd>The maximum number of preceding context characters this transliterator needs to examine </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004579">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Definition at line <a class="el" href="translit_8h_source.html#l01315">1315</a> of file <a class="el" href="translit_8h_source.html">translit.h</a>.</p>

</div>
</div>
<a class="anchor" id="a25ae9a95edc4984c16a8a684b53aa690"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classicu_1_1UnicodeSet.html">UnicodeSet</a>&amp; icu::Transliterator::getSourceSet </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeSet.html">UnicodeSet</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the set of all characters that may be modified in the input text by this <a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a>. </p>
<p>This incorporates this object's current filter; if the filter is changed, the return value of this function will change. The default implementation returns an empty set. Some subclasses may override <a class="el" href="classicu_1_1Transliterator.html#a2f0e799fed7987514964b59742037be1">handleGetSourceSet</a> to return a more precise result. The return result is approximate in any case and is intended for use by tests, tools, or utilities. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">result</td><td>receives result set; previous contents lost </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a reference to result </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Transliterator.html#a9f87f60df3b846a93ce0bfea01f46735" title="Returns the set of all characters that may be generated as replacement text by this transliterator...">getTargetSet</a> </dd>
<dd>
<a class="el" href="classicu_1_1Transliterator.html#a2f0e799fed7987514964b59742037be1" title="Framework method that returns the set of all characters that may be modified in the input text by thi...">handleGetSourceSet</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004594">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a0d7dd4dacf15fc7ed4b98f0ef511dbf9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="uobject_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a> icu::Transliterator::getStaticClassID </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the class ID for this class. </p>
<p>This is useful only for comparing to a return value from <a class="el" href="classicu_1_1Transliterator.html#a01c17b907013ae67f8896330dbf4fce3" title="Returns a unique class ID polymorphically. ">getDynamicClassID()</a>. Note that <a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a> is an abstract base class, and therefor no fully constructed object will have a dynamic UCLassID that equals the UClassID returned from TRansliterator::getStaticClassID(). </p><dl class="section return"><dt>Returns</dt><dd>The class ID for class <a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a>. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004609">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a9f87f60df3b846a93ce0bfea01f46735"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classicu_1_1UnicodeSet.html">UnicodeSet</a>&amp; icu::Transliterator::getTargetSet </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeSet.html">UnicodeSet</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the set of all characters that may be generated as replacement text by this transliterator. </p>
<p>The default implementation returns the empty set. Some subclasses may override this method to return a more precise result. The return result is approximate in any case and is intended for use by tests, tools, or utilities requiring such meta-information. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">result</td><td>receives result set; previous contents lost </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a reference to result </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Transliterator.html#a9f87f60df3b846a93ce0bfea01f46735" title="Returns the set of all characters that may be generated as replacement text by this transliterator...">getTargetSet</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004596">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a2f0e799fed7987514964b59742037be1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void icu::Transliterator::handleGetSourceSet </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeSet.html">UnicodeSet</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Framework method that returns the set of all characters that may be modified in the input text by this <a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a>, ignoring the effect of this object's filter. </p>
<p>The base class implementation returns the empty set. Subclasses that wish to implement this should override this method. </p><dl class="section return"><dt>Returns</dt><dd>the set of characters that this transliterator may modify. The set may be modified, so subclasses should return a newly-created object. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">result</td><td>receives result set; previous contents lost </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Transliterator.html#a25ae9a95edc4984c16a8a684b53aa690" title="Returns the set of all characters that may be modified in the input text by this Transliterator. ">getSourceSet</a> </dd>
<dd>
<a class="el" href="classicu_1_1Transliterator.html#a9f87f60df3b846a93ce0bfea01f46735" title="Returns the set of all characters that may be generated as replacement text by this transliterator...">getTargetSet</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004595">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a7e51de341e73ee7dbae9a41f1723c073"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void icu::Transliterator::handleTransliterate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structUTransPosition.html">UTransPosition</a> &amp;&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&#160;</td>
          <td class="paramname"><em>incremental</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Abstract method that concrete subclasses define to implement their transliteration algorithm. </p>
<p>This method handles both incremental and non-incremental transliteration. Let <code>originalStart</code> refer to the value of <code>pos.start</code> upon entry.</p>
<ul>
<li>
<p class="startli">If <code>incremental</code> is false, then this method should transliterate all characters between <code>pos.start</code> and <code>pos.limit</code>. Upon return <code>pos.start</code> must == <code> pos.limit</code>.</p>
<p class="endli"></p>
</li>
<li>
If <code>incremental</code> is true, then this method should transliterate all characters between <code>pos.start</code> and <code>pos.limit</code> that can be unambiguously transliterated, regardless of future insertions of text at <code>pos.limit</code>. Upon return, <code>pos.start</code> should be in the range [<code>originalStart</code>, <code>pos.limit</code>). <code>pos.start</code> should be positioned such that characters [<code>originalStart</code>, <code> pos.start</code>) will not be changed in the future by this transliterator and characters [<code>pos.start</code>, <code>pos.limit</code>) are unchanged. </li>
</ul>
<p>Implementations of this method should also obey the following invariants:</p>
<ul>
<li>
<p class="startli"><code>pos.limit</code> and <code>pos.contextLimit</code> should be updated to reflect changes in length of the text between <code>pos.start</code> and <code>pos.limit</code>. The difference <code> pos.contextLimit - pos.limit</code> should not change.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli"><code>pos.contextStart</code> should not change.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Upon return, neither <code>pos.start</code> nor <code>pos.limit</code> should be less than <code>originalStart</code>.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli">Text before <code>originalStart</code> and text after <code>pos.limit</code> should not change.</p>
<p class="endli"></p>
</li>
<li>
Text before <code>pos.contextStart</code> and text after <code> pos.contextLimit</code> should be ignored. </li>
</ul>
<p>Subclasses may safely assume that all characters in [<code>pos.start</code>, <code>pos.limit</code>) are filtered. In other words, the filter has already been applied by the time this method is called. See <code><a class="el" href="classicu_1_1Transliterator.html#acac9fed19519ac79e6ed2af1dc629242" title="Transliterate a substring of text, as specified by index, taking filters into account. ">filteredTransliterate()</a></code>.</p>
<p>This method is <b>not</b> for public consumption. Calling this method directly will transliterate [<code>pos.start</code>, <code>pos.limit</code>) without applying the filter. End user code should call <code> <a class="el" href="classicu_1_1Transliterator.html#a5ac045fc0a40b068ef65389c77cf5afe" title="Transliterates a segment of a string, with optional filtering. ">transliterate()</a></code> instead of this method. Subclass code and wrapping transliterators should call <code><a class="el" href="classicu_1_1Transliterator.html#acac9fed19519ac79e6ed2af1dc629242" title="Transliterate a substring of text, as specified by index, taking filters into account. ">filteredTransliterate()</a></code> instead of this method.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">text</td><td>the buffer holding transliterated and untransliterated text</td></tr>
    <tr><td class="paramname">pos</td><td>the indices indicating the start, limit, context start, and context limit of the text.</td></tr>
    <tr><td class="paramname">incremental</td><td>if true, assume more text may be inserted at <code>pos.limit</code> and act accordingly. Otherwise, transliterate all text between <code>pos.start</code> and <code>pos.limit</code> and move <code>pos.start</code> up to <code>pos.limit</code>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Transliterator.html#a5ac045fc0a40b068ef65389c77cf5afe" title="Transliterates a segment of a string, with optional filtering. ">transliterate</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004577">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a49abcadb1ea3faffe13696268c324a30"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="unionicu_1_1Transliterator_1_1Token.html">Transliterator::Token</a> icu::Transliterator::integerToken </td>
          <td>(</td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return a token containing an integer. </p>
<dl class="section return"><dt>Returns</dt><dd>a token containing an integer. </dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000442">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="translit_8h_source.html#l01327">1327</a> of file <a class="el" href="translit_8h_source.html">translit.h</a>.</p>

<p>References <a class="el" href="translit_8h_source.html#l00274">icu::Transliterator::Token::integer</a>.</p>

</div>
</div>
<a class="anchor" id="a7db77de8033a75a27489e788669d1c42"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classicu_1_1Transliterator.html">Transliterator</a>&amp; icu::Transliterator::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Assignment operator. </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004567">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

</div>
</div>
<a class="anchor" id="aef892d1559e6aac829778e4b570b144e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classicu_1_1UnicodeFilter.html">UnicodeFilter</a>* icu::Transliterator::orphanFilter </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the filter used by this transliterator, or <code>NULL</code> if this transliterator uses no filter. </p>
<p>The caller must eventually delete the result. After this call, this transliterator's filter is set to <code>NULL</code>. </p><dl class="section return"><dt>Returns</dt><dd>the filter used by this transliterator, or <code>NULL</code> if this transliterator uses no filter. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004585">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

</div>
</div>
<a class="anchor" id="ad9e20455d2f8e4b4b570cf4443badae3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="unionicu_1_1Transliterator_1_1Token.html">Transliterator::Token</a> icu::Transliterator::pointerToken </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return a token containing a pointer. </p>
<dl class="section return"><dt>Returns</dt><dd>a token containing a pointer. </dd></dl>
<dl class="internal"><dt><b><a class="el" href="internal.html#_internal000443">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="translit_8h_source.html#l01333">1333</a> of file <a class="el" href="translit_8h_source.html">translit.h</a>.</p>

<p>References <a class="el" href="translit_8h_source.html#l00279">icu::Transliterator::Token::pointer</a>, and <a class="el" href="uversion_8h_source.html#l00132">U_NAMESPACE_END</a>.</p>

</div>
</div>
<a class="anchor" id="a6a02398fdd93dc09c1e8523ab53473ab"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void icu::Transliterator::registerAlias </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>aliasID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>realID</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Registers an ID string as an alias of another ID string. </p>
<p>That is, after calling this function, <code>createInstance(aliasID)</code> will return the same thing as <code>createInstance(realID)</code>. This is generally used to create shorter, more mnemonic aliases for long compound IDs.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aliasID</td><td>The new ID being registered. </td></tr>
    <tr><td class="paramname">realID</td><td>The ID that the new ID is to be an alias for. This can be a compound ID and can include filters and should refer to transliterators that have already been registered with the framework, although this isn't checked. </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004599">Stable:</a></b></dt><dd>ICU 3.6 </dd></dl>

</div>
</div>
<a class="anchor" id="ac43e9b3e1a7192ad38e11b58492cf5e7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void icu::Transliterator::registerFactory </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classicu_1_1Transliterator.html#a29bba05524202eb65f3ab188b836662e">Factory</a>&#160;</td>
          <td class="paramname"><em>factory</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="unionicu_1_1Transliterator_1_1Token.html">Token</a>&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Registers a factory function that creates transliterators of a given ID. </p>
<p>Because ICU may choose to cache Transliterators internally, this must be called at application startup, prior to any calls to Transliterator::createXXX to avoid undefined behavior.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">id</td><td>the ID being registered </td></tr>
    <tr><td class="paramname">factory</td><td>a function pointer that will be copied and called later when the given ID is passed to <a class="el" href="classicu_1_1Transliterator.html#ad257ac1b111f802a7ea55dd4e98dd2da" title="Returns a Transliterator object given its ID. ">createInstance()</a> </td></tr>
    <tr><td class="paramname">context</td><td>a context pointer that will be stored and later passed to the factory function when an ID matching the registration ID is being instantiated with this factory. </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004597">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="ae9304cfff31e760183811d90a7efe1b7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void icu::Transliterator::registerInstance </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1Transliterator.html">Transliterator</a> *&#160;</td>
          <td class="paramname"><em>adoptedObj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Registers an instance <code>obj</code> of a subclass of <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> with the system. </p>
<p>When <code><a class="el" href="classicu_1_1Transliterator.html#ad257ac1b111f802a7ea55dd4e98dd2da" title="Returns a Transliterator object given its ID. ">createInstance()</a></code> is called with an ID string that is equal to <code>obj-&gt;<a class="el" href="classicu_1_1Transliterator.html#ace6576e349f659ba54f5a0de6443e5d8" title="Returns a programmatic identifier for this transliterator. ">getID()</a></code>, then <code>obj-&gt;<a class="el" href="classicu_1_1Transliterator.html#a73e238c53cd60555cfa1610dba2e6e91" title="Implements Cloneable. ">clone()</a></code> is returned.</p>
<p>After this call the <a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a> class owns the adoptedObj and will delete it.</p>
<p>Because ICU may choose to cache Transliterators internally, this must be called at application startup, prior to any calls to Transliterator::createXXX to avoid undefined behavior.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">adoptedObj</td><td>an instance of subclass of <code><a class="el" href="classicu_1_1Transliterator.html" title="Transliterator is an abstract class that transliterates text from one format to another. ">Transliterator</a></code> that defines <code><a class="el" href="classicu_1_1Transliterator.html#a73e238c53cd60555cfa1610dba2e6e91" title="Implements Cloneable. ">clone()</a></code> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Transliterator.html#ad257ac1b111f802a7ea55dd4e98dd2da" title="Returns a Transliterator object given its ID. ">createInstance</a> </dd>
<dd>
<a class="el" href="classicu_1_1Transliterator.html#ac43e9b3e1a7192ad38e11b58492cf5e7" title="Registers a factory function that creates transliterators of a given ID. ">registerFactory</a> </dd>
<dd>
<a class="el" href="classicu_1_1Transliterator.html#a3e78a0feaa57019b776c93d2cf925771" title="Unregisters a transliterator or class. ">unregister</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004598">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a566ce517aa30abced9e3a6ec551ded9c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void icu::Transliterator::setID </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the ID of this transliterators. </p>
<p>Subclasses shouldn't do this, unless the underlying script behavior has changed. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">id</td><td>the new id t to be set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004608">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

<p>Definition at line <a class="el" href="translit_8h_source.html#l01319">1319</a> of file <a class="el" href="translit_8h_source.html">translit.h</a>.</p>

<p>References <a class="el" href="unistr_8h_source.html#l04524">icu::UnicodeString::append()</a>, and <a class="el" href="unistr_8h_source.html#l04632">icu::UnicodeString::truncate()</a>.</p>

</div>
</div>
<a class="anchor" id="acb5cbdb330feb80d397b7ed2027544d7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void icu::Transliterator::setMaximumContextLength </td>
          <td>(</td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>maxContextLength</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Method for subclasses to use to set the maximum context length. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">maxContextLength</td><td>the new value to be set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Transliterator.html#a99690a0aecae430e475226cd90221c1c" title="Returns the length of the longest context required by this transliterator. ">getMaximumContextLength</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004580">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl>

</div>
</div>
<a class="anchor" id="a22e9e649d1caac9ecf1488268d39c72f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a>&amp; icu::Transliterator::toRules </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&#160;</td>
          <td class="paramname"><em>escapeUnprintable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a rule string that can be passed to <a class="el" href="classicu_1_1Transliterator.html#a08d8d7309df6737525425e80941f80aa" title="Returns a Transliterator object constructed from the given rule string. ">createFromRules()</a> to recreate this transliterator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">result</td><td>the string to receive the rules. Previous contents will be deleted. </td></tr>
    <tr><td class="paramname">escapeUnprintable</td><td>if TRUE then convert unprintable character to their hex escape representations, \uxxxx or \Uxxxxxxxx. Unprintable characters are those other than U+000A, U+0020..U+007E. </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004591">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a5ac045fc0a40b068ef65389c77cf5afe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int32_t icu::Transliterator::transliterate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>limit</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Transliterates a segment of a string, with optional filtering. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">text</td><td>the string to be transliterated </td></tr>
    <tr><td class="paramname">start</td><td>the beginning index, inclusive; <code>0 &lt;= start &lt;= limit</code>. </td></tr>
    <tr><td class="paramname">limit</td><td>the ending index, exclusive; <code>start &lt;= limit &lt;= text.length()</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The new limit index. The text previously occupying <code>[start, limit)</code> has been transliterated, possibly to a string of a different length, at <code>[start, </code><em>new-limit</em><code>)</code>, where <em>new-limit</em> is the return value. If the input offsets are out of bounds, the returned value is -1 and the input string remains unchanged. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004571">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a61625c0052347fa8f4dcfb9458d68f3f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void icu::Transliterator::transliterate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;&#160;</td>
          <td class="paramname"><em>text</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Transliterates an entire string in place. </p>
<p>Convenience method. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">text</td><td>the string to be transliterated </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004572">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="aeaa85a2ac130bc5c9fd006f741749d2b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void icu::Transliterator::transliterate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structUTransPosition.html">UTransPosition</a> &amp;&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>insertion</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Transliterates the portion of the text buffer that can be transliterated unambiguosly after new text has been inserted, typically as a result of a keyboard event. </p>
<p>The new text in <code>insertion</code> will be inserted into <code>text</code> at <code>index.limit</code>, advancing <code>index.limit</code> by <code>insertion.length()</code>. Then the transliterator will try to transliterate characters of <code>text</code> between <code>index.cursor</code> and <code>index.limit</code>. Characters before <code>index.cursor</code> will not be changed.</p>
<p>Upon return, values in <code>index</code> will be updated. <code>index.start</code> will be advanced to the first character that future calls to this method will read. <code>index.cursor</code> and <code>index.limit</code> will be adjusted to delimit the range of text that future calls to this method may change.</p>
<p>Typical usage of this method begins with an initial call with <code>index.start</code> and <code>index.limit</code> set to indicate the portion of <code>text</code> to be transliterated, and <code>index.cursor == index.start</code>. Thereafter, <code>index</code> can be used without modification in future calls, provided that all changes to <code>text</code> are made via this method.</p>
<p>This method assumes that future calls may be made that will insert new text into the buffer. As a result, it only performs unambiguous transliterations. After the last call to this method, there may be untransliterated text that is waiting for more input to resolve an ambiguity. In order to perform these pending transliterations, clients should call <a class="el" href="classicu_1_1Transliterator.html#a650c2e4be551935cff9d802829bd12f5">finishTransliteration</a> after the last call to this method has been made.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">text</td><td>the buffer holding transliterated and untransliterated text </td></tr>
    <tr><td class="paramname">index</td><td>an array of three integers.</td></tr>
  </table>
  </dd>
</dl>
<ul>
<li>
<p class="startli"><code>index.start</code>: the beginning index, inclusive; <code>0 &lt;= index.start &lt;= index.limit</code>.</p>
<p class="endli"></p>
</li>
<li>
<p class="startli"><code>index.limit</code>: the ending index, exclusive; <code>index.start &lt;= index.limit &lt;= text.length()</code>. <code>insertion</code> is inserted at <code>index.limit</code>.</p>
<p class="endli"></p>
</li>
<li>
<code>index.cursor</code>: the next character to be considered for transliteration; <code>index.start &lt;= index.cursor &lt;= index.limit</code>. Characters before <code>index.cursor</code> will not be changed by future calls to this method.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">insertion</td><td>text to be inserted and possibly transliterated into the translation buffer at <code>index.limit</code>. If <code>null</code> then no text is inserted. </td></tr>
    <tr><td class="paramname">status</td><td>Output param to filled in with a success or an error. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Transliterator.html#a7e51de341e73ee7dbae9a41f1723c073" title="Abstract method that concrete subclasses define to implement their transliteration algorithm...">handleTransliterate</a> </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">IllegalArgumentException</td><td>if <code>index</code> is invalid </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUTransPosition.html" title="Position structure for utrans_transIncremental() incremental transliteration. ">UTransPosition</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004573">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="aa812595ae66e1e6a9bb93f383b3ef442"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void icu::Transliterator::transliterate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structUTransPosition.html">UTransPosition</a> &amp;&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td>
          <td class="paramname"><em>insertion</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Transliterates the portion of the text buffer that can be transliterated unambiguosly after a new character has been inserted, typically as a result of a keyboard event. </p>
<p>This is a convenience method. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">text</td><td>the buffer holding transliterated and untransliterated text </td></tr>
    <tr><td class="paramname">index</td><td>an array of three integers. </td></tr>
    <tr><td class="paramname">insertion</td><td>text to be inserted and possibly transliterated into the translation buffer at <code>index.limit</code>. </td></tr>
    <tr><td class="paramname">status</td><td>Output param to filled in with a success or an error. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Transliterator.html#aeaa85a2ac130bc5c9fd006f741749d2b" title="Transliterates the portion of the text buffer that can be transliterated unambiguosly after new text ...">transliterate(Replaceable&amp;, UTransPosition&amp;, const UnicodeString&amp;, UErrorCode&amp;) const</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004574">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a185ea05f0ef29ea697ff3f9b7966a11d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void icu::Transliterator::transliterate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classicu_1_1Replaceable.html">Replaceable</a> &amp;&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structUTransPosition.html">UTransPosition</a> &amp;&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Transliterates the portion of the text buffer that can be transliterated unambiguosly. </p>
<p>This is a convenience method; see <a class="el" href="classicu_1_1Transliterator.html#aeaa85a2ac130bc5c9fd006f741749d2b">transliterate(Replaceable&amp;, UTransPosition&amp;, const UnicodeString&amp;, UErrorCode&amp;) const </a> for details. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">text</td><td>the buffer holding transliterated and untransliterated text </td></tr>
    <tr><td class="paramname">index</td><td>an array of three integers. See <a class="el" href="">transliterate(Replaceable&amp;, UTransPosition&amp;, const UnicodeString*, UErrorCode&amp;) const </a>. </td></tr>
    <tr><td class="paramname">status</td><td>Output param to filled in with a success or an error. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>#transliterate(Replaceable, int[], String) </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004575">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a3e78a0feaa57019b776c93d2cf925771"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void icu::Transliterator::unregister </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &amp;&#160;</td>
          <td class="paramname"><em>ID</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unregisters a transliterator or class. </p>
<p>This may be either a system transliterator or a user transliterator or class. Any attempt to construct an unregistered transliterator based on its ID will fail.</p>
<p>Because ICU may choose to cache Transliterators internally, this should be called during application shutdown, after all calls to Transliterator::createXXX to avoid undefined behavior.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ID</td><td>the ID of the transliterator or class </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the <code>Object</code> that was registered with <code>ID</code>, or <code>null</code> if none was </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Transliterator.html#ae9304cfff31e760183811d90a7efe1b7" title="Registers an instance obj of a subclass of Transliterator with the system. ">registerInstance</a> </dd>
<dd>
<a class="el" href="classicu_1_1Transliterator.html#ac43e9b3e1a7192ad38e11b58492cf5e7" title="Registers a factory function that creates transliterators of a given ID. ">registerFactory</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004600">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="translit_8h_source.html">translit.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>