<html> <head> <title>Interface XCharacterClassification</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="../../../../idl.css"> </head> <body> <div id="adc-idlref"> <a name="_top_"> </a><table class="navimain" border="0" cellpadding="3"> <tr> <td class="navimain"><a href="../module-ix.html" class="navimain">Overview</a></td> <td class="navimain"><a href="module-ix.html" class="navimain">Module</a></td> <td class="navimain"><a href="XCharacterClassification-xref.html" class="navimain">Use</a></td> <td class="navimain"><a href="#devmanual" class="navimain">Devguide</a></td> <td class="navimain"><a href="../../../../index-files/index-1.html" class="navimain">Index</a></td> </tr> </table> <table class="navisub" border="0" cellpadding="0"> <tr> <td class="navisub"><a href="#MethodsSummary" class="navisub">Methods' Summary</a></td> <td class="navisub"><a href="#MethodsDetails" class="navisub">Methods' Details</a></td> <td class="navisub">Attributes' Summary</td> <td class="navisub">Attributes' Details</td> </tr> </table> <hr> <table border="0" width="100%" cellpadding="5" cellspacing="3" class="title-table" style="margin-bottom:6pt;"> <tr> <td><p class="namechain"><a href="../../../../module-ix.html" class="namechain">::</a> <a href="../../../module-ix.html" class="namechain">com</a> :: <a href="../../module-ix.html" class="namechain">sun</a> :: <a href="../module-ix.html" class="namechain">star</a> :: <a href="module-ix.html" class="namechain">i18n</a> :: </p> </td> </tr> <tr> <td class="title">interface XCharacterClassification</td> </tr> <tr> <td/></tr> <tr> <td><dl> <dt><b>Description</b></dt> <dd>Character classification (upper, lower, digit, letter, number, ...) and generic Unicode enabled parser. </dd> </dl> <a name="devmanual"> </a><dl> <dt><b>Developers Guide</b></dt> <dd><a href="http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/Implementing_a_New_Locale#XCharacterClassification">OfficeDev - Implementing a New Locale - XCharacterClassification</a></dd> <dd><a href="http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/Overview_and_Using_the_API#XCharacterClassification">OfficeDev - Overview and Using the API - XCharacterClassification</a></dd> </dl> </td> </tr> </table> <hr> <a name="MethodsSummary"/><table border="1" width="100%" cellpadding="5" cellspacing="0" class="subtitle"> <tr> <td class="subtitle" colspan="2">Methods' Summary</td> </tr> <tr> <td class="imsum_left"><a href="#toUpper">toUpper</a></td> <td class="imsum_right">Convert lower case alpha to upper case alpha, starting at position <em>nPos</em> for <em>nCount</em> code points. </td> </tr> <tr> <td class="imsum_left"><a href="#toLower">toLower</a></td> <td class="imsum_right">Convert upper case alpha to lower case alpha, starting at position <em>nPos</em> for <em>nCount</em> code points. </td> </tr> <tr> <td class="imsum_left"><a href="#toTitle">toTitle</a></td> <td class="imsum_right">Convert to title case, starting at position <em>nPos</em> for <em>nCount</em> code points. </td> </tr> <tr> <td class="imsum_left"><a href="#getType">getType</a></td> <td class="imsum_right">Get <a href="UnicodeType.html">UnicodeType</a> of character at position <em>nPos</em>. </td> </tr> <tr> <td class="imsum_left"><a href="#getCharacterDirection">getCharacterDirection</a></td> <td class="imsum_right">Get <a href="DirectionProperty.html">DirectionProperty</a> of character at position <em>nPos</em>. </td> </tr> <tr> <td class="imsum_left"><a href="#getScript">getScript</a></td> <td class="imsum_right">Get <a href="UnicodeScript.html">UnicodeScript</a> of character at position <em>nPos</em>. </td> </tr> <tr> <td class="imsum_left"><a href="#getCharacterType">getCharacterType</a></td> <td class="imsum_right">Get <a href="KCharacterType.html">KCharacterType</a> of character at position <em>nPos</em>. </td> </tr> <tr> <td class="imsum_left"><a href="#getStringType">getStringType</a></td> <td class="imsum_right">Get accumulated <a href="KCharacterType.html">KCharacterType</a>s of string starting at position <em>nPos</em> of length <em>nCount</em> code points. </td> </tr> <tr> <td class="imsum_left"><a href="#parseAnyToken">parseAnyToken</a></td> <td class="imsum_right">Parse a string for a token starting at position <em>nPos</em>. </td> </tr> <tr> <td class="imsum_left"><a href="#parsePredefinedToken">parsePredefinedToken</a></td> <td class="imsum_right">Parse a string for a token of type <em>nTokenType</em> starting at position <em>nPos</em>. </td> </tr> </table> <a name="MethodsDetails"/><table border="1" width="100%" cellpadding="5" cellspacing="0" class="subtitle"> <tr> <td class="subtitle">Methods' Details</td> </tr> <tr> <td class="imdetail"><a name="toUpper" class="membertitle">toUpper</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center"> <tr> <td><table class="table-in-method" border="0"> <tr> <td valign="top" colspan="3">string</td> </tr> <tr> <td valign="top"><b>toUpper</b>(</td> <td valign="top">[in] string</td> <td valign="bottom"> aText,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nPos,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nCount,</td> </tr> <tr> <td/><td valign="top">[in] ::com::sun::star::<a href="../lang/module-ix.html">lang</a>::<a href="../lang/Locale.html">Locale</a></td> <td valign="bottom"> aLocale );</td> </tr> </table> <hr> <dl> <dt><b>Description</b></dt> <dd>Convert lower case alpha to upper case alpha, starting at position <em>nPos</em> for <em>nCount</em> code points. </dd> </dl> </td> </tr> </table> </td> </tr> <tr> <td class="imdetail"><a name="toLower" class="membertitle">toLower</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center"> <tr> <td><table class="table-in-method" border="0"> <tr> <td valign="top" colspan="3">string</td> </tr> <tr> <td valign="top"><b>toLower</b>(</td> <td valign="top">[in] string</td> <td valign="bottom"> aText,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nPos,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nCount,</td> </tr> <tr> <td/><td valign="top">[in] ::com::sun::star::<a href="../lang/module-ix.html">lang</a>::<a href="../lang/Locale.html">Locale</a></td> <td valign="bottom"> aLocale );</td> </tr> </table> <hr> <dl> <dt><b>Description</b></dt> <dd>Convert upper case alpha to lower case alpha, starting at position <em>nPos</em> for <em>nCount</em> code points. </dd> </dl> </td> </tr> </table> </td> </tr> <tr> <td class="imdetail"><a name="toTitle" class="membertitle">toTitle</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center"> <tr> <td><table class="table-in-method" border="0"> <tr> <td valign="top" colspan="3">string</td> </tr> <tr> <td valign="top"><b>toTitle</b>(</td> <td valign="top">[in] string</td> <td valign="bottom"> aText,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nPos,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nCount,</td> </tr> <tr> <td/><td valign="top">[in] ::com::sun::star::<a href="../lang/module-ix.html">lang</a>::<a href="../lang/Locale.html">Locale</a></td> <td valign="bottom"> aLocale );</td> </tr> </table> <hr> <dl> <dt><b>Description</b></dt> <dd>Convert to title case, starting at position <em>nPos</em> for <em>nCount</em> code points. </dd> </dl> </td> </tr> </table> </td> </tr> <tr> <td class="imdetail"><a name="getType" class="membertitle">getType</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center"> <tr> <td><table class="table-in-method" border="0"> <tr> <td valign="top" colspan="3">short</td> </tr> <tr> <td valign="top"><b>getType</b>(</td> <td valign="top">[in] string</td> <td valign="bottom"> aText,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nPos );</td> </tr> </table> <hr> <dl> <dt><b>Description</b></dt> <dd>Get <a href="UnicodeType.html">UnicodeType</a> of character at position <em>nPos</em>.</dd> </dl> </td> </tr> </table> </td> </tr> <tr> <td class="imdetail"><a name="getCharacterDirection" class="membertitle">getCharacterDirection</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center"> <tr> <td><table class="table-in-method" border="0"> <tr> <td valign="top" colspan="3">short</td> </tr> <tr> <td valign="top"><b>getCharacterDirection</b>(</td> <td valign="top">[in] string</td> <td valign="bottom"> aText,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nPos );</td> </tr> </table> <hr> <dl> <dt><b>Description</b></dt> <dd>Get <a href="DirectionProperty.html">DirectionProperty</a> of character at position <em>nPos</em>. </dd> </dl> </td> </tr> </table> </td> </tr> <tr> <td class="imdetail"><a name="getScript" class="membertitle">getScript</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center"> <tr> <td><table class="table-in-method" border="0"> <tr> <td valign="top" colspan="3">short</td> </tr> <tr> <td valign="top"><b>getScript</b>(</td> <td valign="top">[in] string</td> <td valign="bottom"> aText,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nPos );</td> </tr> </table> <hr> <dl> <dt><b>Description</b></dt> <dd>Get <a href="UnicodeScript.html">UnicodeScript</a> of character at position <em>nPos</em>.</dd> </dl> </td> </tr> </table> </td> </tr> <tr> <td class="imdetail"><a name="getCharacterType" class="membertitle">getCharacterType</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center"> <tr> <td><table class="table-in-method" border="0"> <tr> <td valign="top" colspan="3">long</td> </tr> <tr> <td valign="top"><b>getCharacterType</b>(</td> <td valign="top">[in] string</td> <td valign="bottom"> aText,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nPos,</td> </tr> <tr> <td/><td valign="top">[in] ::com::sun::star::<a href="../lang/module-ix.html">lang</a>::<a href="../lang/Locale.html">Locale</a></td> <td valign="bottom"> aLocale );</td> </tr> </table> <hr> <dl> <dt><b>Description</b></dt> <dd>Get <a href="KCharacterType.html">KCharacterType</a> of character at position <em>nPos</em>.</dd> </dl> </td> </tr> </table> </td> </tr> <tr> <td class="imdetail"><a name="getStringType" class="membertitle">getStringType</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center"> <tr> <td><table class="table-in-method" border="0"> <tr> <td valign="top" colspan="3">long</td> </tr> <tr> <td valign="top"><b>getStringType</b>(</td> <td valign="top">[in] string</td> <td valign="bottom"> aText,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nPos,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nCount,</td> </tr> <tr> <td/><td valign="top">[in] ::com::sun::star::<a href="../lang/module-ix.html">lang</a>::<a href="../lang/Locale.html">Locale</a></td> <td valign="bottom"> aLocale );</td> </tr> </table> <hr> <dl> <dt><b>Description</b></dt> <dd>Get accumulated <a href="KCharacterType.html">KCharacterType</a>s of string starting at position <em>nPos</em> of length <em>nCount</em> code points. </dd> <dt><b>Returns</b></dt> <dd>A number with appropriate flags set to indicate what type of characters the string contains, each flag value being one of KCharacterType values. </dd> </dl> </td> </tr> </table> </td> </tr> <tr> <td class="imdetail"><a name="parseAnyToken" class="membertitle">parseAnyToken</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center"> <tr> <td><table class="table-in-method" border="0"> <tr> <td valign="top" colspan="3"><a href="ParseResult.html">ParseResult</a></td> </tr> <tr> <td valign="top"><b>parseAnyToken</b>(</td> <td valign="top">[in] string</td> <td valign="bottom"> aText,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nPos,</td> </tr> <tr> <td/><td valign="top">[in] ::com::sun::star::<a href="../lang/module-ix.html">lang</a>::<a href="../lang/Locale.html">Locale</a></td> <td valign="bottom"> aLocale,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nStartCharFlags,</td> </tr> <tr> <td/><td valign="top">[in] string</td> <td valign="bottom"> aUserDefinedCharactersStart,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nContCharFlags,</td> </tr> <tr> <td/><td valign="top">[in] string</td> <td valign="bottom"> aUserDefinedCharactersCont );</td> </tr> </table> <hr> <dl> <dt><b>Description</b></dt> <dd>Parse a string for a token starting at position <em>nPos</em>. </dd> <dd><p> A name or identifier must match the <a href="KParseTokens.html">KParseTokens</a> criteria passed in <em>nStartCharFlags</em> and <em>nContCharFlags</em> and may additionally contain characters of <em>aUserDefinedCharactersStart</em> and/or <em>aUserDefinedCharactersCont</em>. </p> </dd> <dt><b>Returns</b></dt> <dd>A filled <a href="ParseResult.html">ParseResult</a> structure. If no unambigous token could be parsed, <a href="ParseResult.html">ParseResult</a>::<a href="ParseResult.html#TokenType">TokenType</a> will be set to <b>0</b> (zero), other fields will contain the values parsed so far. <p> If a token may represent either a numeric value or a name according to the passed Start/Cont-Flags/Chars, both <b>KParseType::ASC_NUM</b> (or <b>KParseType::UNI_NUM</b>) and <b>KParseType::IDENTNAME</b> are set in <a href="ParseResult.html">ParseResult</a>::<a href="ParseResult.html#TokenType">TokenType</a>. </dd> <dt><b>Parameter aText</b></dt> <dd>Text to be parsed. </dd> <dt><b>Parameter nPos</b></dt> <dd>Position where parsing starts. </dd> <dt><b>Parameter aLocale</b></dt> <dd>The locale, for example, for decimal and group separator or character type determination. </dd> <dt><b>Parameter nStartCharFlags</b></dt> <dd>A set of <a href="KParseTokens.html">KParseTokens</a> constants determining the allowed characters a name or identifier may start with. </dd> <dt><b>Parameter aUserDefinedCharactersStart</b></dt> <dd>A set of additionally allowed characters a name or identifier may start with. </dd> <dt><b>Parameter nContCharFlags</b></dt> <dd>A set of <a href="KParseTokens.html">KParseTokens</a> constants determining the allowed characters a name or identifier may continue with. </dd> <dt><b>Parameter aUserDefinedCharactersCont</b></dt> <dd>A set of additionally allowed characters a name or identifier may continue with. </dd> <dt><b>Example</b></dt> <dd>:C++ <pre> using namespace ::com::sun::star::i18n; // First character of an identifier may be any alphabetic or underscore. sal_Int32 nStartFlags = KParseTokens::ANY_ALPHA | KParseTokens::ASC_UNDERSCORE; // Continuing characters may be any alphanumeric or underscore or dot. sal_Int32 nContFlags = KParseTokens::ANY_ALNUM | KParseTokens::ASC_UNDERSCORE | KParseTokens::ASC_DOT; // No further characters assumed to be contained in an identifier String aEmptyString; // Parse any token. ParseResult rRes = xCC->parseAnyToken( aText, nPos, aLocale, nStartFlags, aEmptyString, nContFlags, aEmptyString ); // Get parsed token. if ( rRes.TokenType & (KParseType::ASC_NUMBER | KParseType::UNI_NUMBER) ) fValue = rRes.Value; if ( rRes.TokenType & KParseType::IDENTNAME ) aName = aText.Copy( nPos, rRes.EndPos - nPos ); else if ( rRes.TokenType & KParseType::SINGLE_QUOTE_NAME ) aName = rRes.DequotedNameOrString; else if ( rRes.TokenType & KParseType::DOUBLE_QUOTE_STRING ) aString = rRes.DequotedNameOrString; else if ( rRes.TokenType & KParseType::BOOLEAN ) aSymbol = aText.Copy( nPos, rRes.EndPos - nPos ); else if ( rRes.TokenType & KParseType::ONE_SINGLE_CHAR ) aSymbol = aText.Copy( nPos, rRes.EndPos - nPos ); </pre> </dd> </dl> </td> </tr> </table> </td> </tr> <tr> <td class="imdetail"><a name="parsePredefinedToken" class="membertitle">parsePredefinedToken</a><table border="0" width="96%" cellpadding="5" cellspacing="0" class="table-in-method" bgcolor="#ffffff" align="center"> <tr> <td><table class="table-in-method" border="0"> <tr> <td valign="top" colspan="3"><a href="ParseResult.html">ParseResult</a></td> </tr> <tr> <td valign="top"><b>parsePredefinedToken</b>(</td> <td valign="top">[in] long</td> <td valign="bottom"> nTokenType,</td> </tr> <tr> <td/><td valign="top">[in] string</td> <td valign="bottom"> aText,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nPos,</td> </tr> <tr> <td/><td valign="top">[in] ::com::sun::star::<a href="../lang/module-ix.html">lang</a>::<a href="../lang/Locale.html">Locale</a></td> <td valign="bottom"> aLocale,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nStartCharFlags,</td> </tr> <tr> <td/><td valign="top">[in] string</td> <td valign="bottom"> aUserDefinedCharactersStart,</td> </tr> <tr> <td/><td valign="top">[in] long</td> <td valign="bottom"> nContCharFlags,</td> </tr> <tr> <td/><td valign="top">[in] string</td> <td valign="bottom"> aUserDefinedCharactersCont );</td> </tr> </table> <hr> <dl> <dt><b>Description</b></dt> <dd>Parse a string for a token of type <em>nTokenType</em> starting at position <em>nPos</em>. </dd> <dd><p> Other parameters are the same as in <a href="#parseAnyToken">parseAnyToken</a>. If the actual token does not match the passed <em>nTokenType</em> a <a href="ParseResult.html">ParseResult</a>::<a href="ParseResult.html#TokenType">TokenType</a> set to <b>0</b> (zero) is returned. </p> </dd> <dt><b>Parameter nTokenType</b></dt> <dd>One or more of the <a href="KParseType.html">KParseType</a> constants. </dd> <dt><b>Example</b></dt> <dd>:C++ <pre> // Determine if a given name is a valid name (not quoted) and contains // only allowed characters. using namespace ::com::sun::star::i18n; // First character of an identifier may be any alphanumeric or underscore. sal_Int32 nStartFlags = KParseTokens::ANY_ALNUM | KParseTokens::ASC_UNDERSCORE; // No further characters assumed to be contained in an identifier start. String aEmptyString; // Continuing characters may be any alphanumeric or underscore. sal_Int32 nContFlags = nStartFlags; // Additionally, continuing characters may contain a blank. String aContChars( RTL_CONSTASCII_USTRINGPARAM(" ") ); // Parse predefined (must be an IDENTNAME) token. ParseResult rRes = xCC->parsePredefinedToken( KParseType::IDENTNAME, rName, 0, aLocale, nStartFlags, aEmptyString, nContFlags, aContChars ); // Test if it is an identifier name and if it only is one // and no more else is following it. bValid = (rRes.TokenType & KParseType::IDENTNAME) && rRes.EndPos == rName.Len(); </pre> </dd> </dl> </td> </tr> </table> </td> </tr> </table> <a href="#_top_">Top of Page</a><hr size="3"><p class="copyright" align="center">Copyright © 2008 Sun Microsystems, Inc.</p> </div> <!-- id="adc-idlref" --> </body> </html>