<!-- This comment will put IE 6, 7 and 8 in quirks mode --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>ICU 4.4.1: UnicodeFilter Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javaScript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body onload='searchBox.OnSelectItem(0);'> <!-- Generated by Doxygen 1.6.2-20100208 --> <script type="text/javascript"><!-- var searchBox = new SearchBox("searchBox", "search",false,'Search'); --></script> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <img id="MSearchSelect" src="search/search.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </div> </li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="classes.html"><span>Data Structure Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> </div> <div class="contents"> <h1>UnicodeFilter Class Reference</h1><!-- doxytag: class="UnicodeFilter" --><!-- doxytag: inherits="UnicodeFunctor,UnicodeMatcher" --> <p><code><a class="el" href="classUnicodeFilter.html" title="UnicodeFilter defines a protocol for selecting a subset of the full range (U+0000...">UnicodeFilter</a></code> defines a protocol for selecting a subset of the full range (U+0000 to U+10FFFF) of Unicode characters. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="unifilt_8h_source.html">unifilt.h</a>></code></p> <div class="dynheader"> Inheritance diagram for UnicodeFilter:</div> <div class="dynsection"> <div class="center"> <img src="classUnicodeFilter.png" usemap="#UnicodeFilter_map" alt=""/> <map id="UnicodeFilter_map" name="UnicodeFilter_map"> <area href="classUnicodeFunctor.html" alt="UnicodeFunctor" shape="rect" coords="0,112,105,136"/> <area href="classUnicodeMatcher.html" alt="UnicodeMatcher" shape="rect" coords="115,112,220,136"/> <area href="classUObject.html" alt="UObject" shape="rect" coords="0,56,105,80"/> <area href="classUMemory.html" alt="UMemory" shape="rect" coords="0,0,105,24"/> <area href="classUnicodeSet.html" alt="UnicodeSet" shape="rect" coords="57,224,162,248"/> </map> </div> </div> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classUnicodeFilter.html#a3d7a3c7903d906784bf208cee420014d">~UnicodeFilter</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#a3d7a3c7903d906784bf208cee420014d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classUnicodeFilter.html#aa3b2c85ffa0cff083009efb324de84ca">contains</a> (<a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> c) const =0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns <code>true</code> for characters that are in the selected subset. <a href="#aa3b2c85ffa0cff083009efb324de84ca"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classUnicodeMatcher.html">UnicodeMatcher</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classUnicodeFilter.html#a79392092ceb92adda473ac09d6f88f6c">toMatcher</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classUnicodeFunctor.html" title="UnicodeFunctor is an abstract base class for objects that perform match and/or replace...">UnicodeFunctor</a> API. <a href="#a79392092ceb92adda473ac09d6f88f6c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="unimatch_8h.html#aa87e5322490b3e89e6913bfabd0390e6">UMatchDegree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classUnicodeFilter.html#aea7e423b6ea7e4588bf7f5aa220e665c">matches</a> (const <a class="el" href="classReplaceable.html">Replaceable</a> &text, int32_t &offset, int32_t limit, <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> incremental)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Implement <a class="el" href="classUnicodeMatcher.html" title="UnicodeMatcher defines a protocol for objects that can match a range of characters...">UnicodeMatcher</a> API. <a href="#aea7e423b6ea7e4588bf7f5aa220e665c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classUnicodeFilter.html#afd1f679426b2fbde93af707e3ba8c0a2">setData</a> (const TransliterationRuleData *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classUnicodeFunctor.html" title="UnicodeFunctor is an abstract base class for objects that perform match and/or replace...">UnicodeFunctor</a> API. <a href="#afd1f679426b2fbde93af707e3ba8c0a2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classUnicodeFilter.html#ac4dc39e50294690b9dd2de60461970f3">getDynamicClassID</a> () const =0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">ICU "poor man's RTTI", returns a UClassID for the actual class. <a href="#ac4dc39e50294690b9dd2de60461970f3"></a><br/></td></tr> <tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classUnicodeFilter.html#a32a5fef7c44d68ebed5313e27645b5e6">getStaticClassID</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">ICU "poor man's RTTI", returns a UClassID for this class. <a href="#a32a5fef7c44d68ebed5313e27645b5e6"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p><code><a class="el" href="classUnicodeFilter.html" title="UnicodeFilter defines a protocol for selecting a subset of the full range (U+0000...">UnicodeFilter</a></code> defines a protocol for selecting a subset of the full range (U+0000 to U+10FFFF) of Unicode characters. </p> <p>Currently, filters are used in conjunction with classes like <a class="el" href="classTransliterator.html">Transliterator</a> to only process selected characters through a transformation.</p> <p>Note: <a class="el" href="classUnicodeFilter.html" title="UnicodeFilter defines a protocol for selecting a subset of the full range (U+0000...">UnicodeFilter</a> currently stubs out two pure virtual methods of its base class, <a class="el" href="classUnicodeMatcher.html" title="UnicodeMatcher defines a protocol for objects that can match a range of characters...">UnicodeMatcher</a>. These methods are <a class="el" href="classUnicodeMatcher.html#a0f8d0182d1e2949ea9adfd2b615e94dd" title="Returns a string representation of this matcher.">toPattern()</a> and <a class="el" href="classUnicodeMatcher.html#a77a01adbdb969d73ac257c75eb63bed6" title="Returns TRUE if this matcher will match a character c, where c & 0xFF == v, at...">matchesIndexValue()</a>. This is done so that filter classes that are not actually used as matchers -- specifically, those in the UnicodeFilterLogic component, and those in tests -- can continue to work without defining these methods. As long as a filter is not used in an RBT during real transliteration, these methods will not be called. However, this breaks the <a class="el" href="classUnicodeMatcher.html" title="UnicodeMatcher defines a protocol for objects that can match a range of characters...">UnicodeMatcher</a> base class protocol, and it is not a correct solution.</p> <p>In the future we may revisit the <a class="el" href="classUnicodeMatcher.html" title="UnicodeMatcher defines a protocol for objects that can match a range of characters...">UnicodeMatcher</a> / <a class="el" href="classUnicodeFilter.html" title="UnicodeFilter defines a protocol for selecting a subset of the full range (U+0000...">UnicodeFilter</a> hierarchy and either redesign it, or simply remove the stubs in <a class="el" href="classUnicodeFilter.html" title="UnicodeFilter defines a protocol for selecting a subset of the full range (U+0000...">UnicodeFilter</a> and force subclasses to implement the full <a class="el" href="classUnicodeMatcher.html" title="UnicodeMatcher defines a protocol for objects that can match a range of characters...">UnicodeMatcher</a> protocol.</p> <dl class="see"><dt><b>See also:</b></dt><dd>UnicodeFilterLogic </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001335">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="unifilt_8h_source.html#l00059">59</a> of file <a class="el" href="unifilt_8h_source.html">unifilt.h</a>.</p> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a3d7a3c7903d906784bf208cee420014d"></a><!-- doxytag: member="UnicodeFilter::~UnicodeFilter" ref="a3d7a3c7903d906784bf208cee420014d" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual UnicodeFilter::~UnicodeFilter </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Destructor. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001336">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="aa3b2c85ffa0cff083009efb324de84ca"></a><!-- doxytag: member="UnicodeFilter::contains" ref="aa3b2c85ffa0cff083009efb324de84ca" args="(UChar32 c) const =0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> UnicodeFilter::contains </td> <td>(</td> <td class="paramtype"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> </td> <td class="paramname"> <em>c</em></td> <td> ) </td> <td> const<code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns <code>true</code> for characters that are in the selected subset. </p> <p>In other words, if a character is <b>to be filtered</b>, then <code><a class="el" href="classUnicodeFilter.html#aa3b2c85ffa0cff083009efb324de84ca" title="Returns true for characters that are in the selected subset.">contains()</a></code> returns <b><code>false</code></b>. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001337">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUnicodeSet.html#a5f83cbdf884770344420fb60e4f8e697">UnicodeSet</a>.</p> </div> </div> <a class="anchor" id="ac4dc39e50294690b9dd2de60461970f3"></a><!-- doxytag: member="UnicodeFilter::getDynamicClassID" ref="ac4dc39e50294690b9dd2de60461970f3" args="() const =0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a> UnicodeFilter::getDynamicClassID </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const<code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>ICU "poor man's RTTI", returns a UClassID for the actual class. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001341">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl> <p>Implements <a class="el" href="classUnicodeFunctor.html#a6eaa9f077fe622d4c02643865f99bfa2">UnicodeFunctor</a>.</p> <p>Implemented in <a class="el" href="classUnicodeSet.html#a4e6c600a7a6bcc1d564d84d0fa512932">UnicodeSet</a>.</p> </div> </div> <a class="anchor" id="a32a5fef7c44d68ebed5313e27645b5e6"></a><!-- doxytag: member="UnicodeFilter::getStaticClassID" ref="a32a5fef7c44d68ebed5313e27645b5e6" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a> UnicodeFilter::getStaticClassID </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>ICU "poor man's RTTI", returns a UClassID for this class. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001342">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl> <p>Reimplemented from <a class="el" href="classUnicodeFunctor.html#a339304d367427ee3e16729a7f074ae25">UnicodeFunctor</a>.</p> <p>Reimplemented in <a class="el" href="classUnicodeSet.html#a1f7725a2e4de21e4cfff622fecc89716">UnicodeSet</a>.</p> </div> </div> <a class="anchor" id="aea7e423b6ea7e4588bf7f5aa220e665c"></a><!-- doxytag: member="UnicodeFilter::matches" ref="aea7e423b6ea7e4588bf7f5aa220e665c" args="(const Replaceable &text, int32_t &offset, int32_t limit, UBool incremental)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="unimatch_8h.html#aa87e5322490b3e89e6913bfabd0390e6">UMatchDegree</a> UnicodeFilter::matches </td> <td>(</td> <td class="paramtype">const <a class="el" href="classReplaceable.html">Replaceable</a> & </td> <td class="paramname"> <em>text</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int32_t & </td> <td class="paramname"> <em>offset</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int32_t </td> <td class="paramname"> <em>limit</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> </td> <td class="paramname"> <em>incremental</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Implement <a class="el" href="classUnicodeMatcher.html" title="UnicodeMatcher defines a protocol for objects that can match a range of characters...">UnicodeMatcher</a> API. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001339">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl> <p>Implements <a class="el" href="classUnicodeMatcher.html#ab712e496c0023237fbe38184d0424310">UnicodeMatcher</a>.</p> <p>Reimplemented in <a class="el" href="classUnicodeSet.html#a3acd6cd4268004b9f3740a2373f411c4">UnicodeSet</a>.</p> </div> </div> <a class="anchor" id="afd1f679426b2fbde93af707e3ba8c0a2"></a><!-- doxytag: member="UnicodeFilter::setData" ref="afd1f679426b2fbde93af707e3ba8c0a2" args="(const TransliterationRuleData *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void UnicodeFilter::setData </td> <td>(</td> <td class="paramtype">const TransliterationRuleData * </td> <td class="paramname"></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p><a class="el" href="classUnicodeFunctor.html" title="UnicodeFunctor is an abstract base class for objects that perform match and/or replace...">UnicodeFunctor</a> API. </p> <p>Nothing to do. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001340">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl> <p>Implements <a class="el" href="classUnicodeFunctor.html#ace3dc97994f3bf4fb74139ff0207db7c">UnicodeFunctor</a>.</p> </div> </div> <a class="anchor" id="a79392092ceb92adda473ac09d6f88f6c"></a><!-- doxytag: member="UnicodeFilter::toMatcher" ref="a79392092ceb92adda473ac09d6f88f6c" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="classUnicodeMatcher.html">UnicodeMatcher</a>* UnicodeFilter::toMatcher </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p><a class="el" href="classUnicodeFunctor.html" title="UnicodeFunctor is an abstract base class for objects that perform match and/or replace...">UnicodeFunctor</a> API. </p> <p>Cast 'this' to a UnicodeMatcher* pointer and return the pointer. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001338">Stable:</a></b></dt><dd>ICU 2.4 </dd></dl> <p>Reimplemented from <a class="el" href="classUnicodeFunctor.html#ae634c62ea3f1fc80db66e73c8b819545">UnicodeFunctor</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="unifilt_8h_source.html">unifilt.h</a></li> </ul> </div> <!--- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Defines</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>