OLD | NEW |
1 /* | 1 /* |
2 ******************************************************************************* | 2 ******************************************************************************* |
3 * Copyright (C) 2008-2014, International Business Machines Corporation and | 3 * Copyright (C) 2008-2015, International Business Machines Corporation and |
4 * others. All Rights Reserved. | 4 * others. All Rights Reserved. |
5 ******************************************************************************* | 5 ******************************************************************************* |
6 * | 6 * |
7 * | 7 * |
8 * File PLURRULE.H | 8 * File PLURRULE.H |
9 * | 9 * |
10 * Modification History:* | 10 * Modification History:* |
11 * Date Name Description | 11 * Date Name Description |
12 * | 12 * |
13 ******************************************************************************** | 13 ******************************************************************************** |
(...skipping 18 matching lines...) Expand all Loading... |
32 * Value returned by PluralRules::getUniqueKeywordValue() when there is no | 32 * Value returned by PluralRules::getUniqueKeywordValue() when there is no |
33 * unique value to return. | 33 * unique value to return. |
34 * @stable ICU 4.8 | 34 * @stable ICU 4.8 |
35 */ | 35 */ |
36 #define UPLRULES_NO_UNIQUE_VALUE ((double)-0.00123456777) | 36 #define UPLRULES_NO_UNIQUE_VALUE ((double)-0.00123456777) |
37 | 37 |
38 U_NAMESPACE_BEGIN | 38 U_NAMESPACE_BEGIN |
39 | 39 |
40 class Hashtable; | 40 class Hashtable; |
41 class FixedDecimal; | 41 class FixedDecimal; |
| 42 class VisibleDigitsWithExponent; |
42 class RuleChain; | 43 class RuleChain; |
43 class PluralRuleParser; | 44 class PluralRuleParser; |
44 class PluralKeywordEnumeration; | 45 class PluralKeywordEnumeration; |
45 class AndConstraint; | 46 class AndConstraint; |
46 class SharedPluralRules; | 47 class SharedPluralRules; |
47 | 48 |
48 /** | 49 /** |
49 * Defines rules for mapping non-negative numeric values onto a small set of | 50 * Defines rules for mapping non-negative numeric values onto a small set of |
50 * keywords. Rules are constructed from a text description, consisting | 51 * keywords. Rules are constructed from a text description, consisting |
51 * of a series of keywords and conditions. The {@link #select} method | 52 * of a series of keywords and conditions. The {@link #select} method |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 * The difference between 'in' and 'within' is that 'in' only includes integers
in the specified range, while 'within' | 157 * The difference between 'in' and 'within' is that 'in' only includes integers
in the specified range, while 'within' |
157 * includes all values. Using 'within' with a range_list consisting entirely of
values is the same as using 'in' (it's | 158 * includes all values. Using 'within' with a range_list consisting entirely of
values is the same as using 'in' (it's |
158 * not an error). | 159 * not an error). |
159 * </p> | 160 * </p> |
160 | 161 |
161 * An "identifier" is a sequence of characters that do not have the | 162 * An "identifier" is a sequence of characters that do not have the |
162 * Unicode Pattern_Syntax or Pattern_White_Space properties. | 163 * Unicode Pattern_Syntax or Pattern_White_Space properties. |
163 * <p> | 164 * <p> |
164 * The difference between 'in' and 'within' is that 'in' only includes | 165 * The difference between 'in' and 'within' is that 'in' only includes |
165 * integers in the specified range, while 'within' includes all values. | 166 * integers in the specified range, while 'within' includes all values. |
166 * Using 'within' with a range_list consisting entirely of values is the | 167 * Using 'within' with a range_list consisting entirely of values is the |
167 * same as using 'in' (it's not an error). | 168 * same as using 'in' (it's not an error). |
168 *</p> | 169 *</p> |
169 * <p> | 170 * <p> |
170 * Keywords | 171 * Keywords |
171 * could be defined by users or from ICU locale data. There are 6 | 172 * could be defined by users or from ICU locale data. There are 6 |
172 * predefined values in ICU - 'zero', 'one', 'two', 'few', 'many' and | 173 * predefined values in ICU - 'zero', 'one', 'two', 'few', 'many' and |
173 * 'other'. Callers need to check the value of keyword returned by | 174 * 'other'. Callers need to check the value of keyword returned by |
174 * {@link #select} method. | 175 * {@link #select} method. |
175 * </p> | 176 * </p> |
176 * | 177 * |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 /** | 295 /** |
295 * Returns whether or not there are overrides. | 296 * Returns whether or not there are overrides. |
296 * @param locale the locale to check. | 297 * @param locale the locale to check. |
297 * @return | 298 * @return |
298 * @internal | 299 * @internal |
299 */ | 300 */ |
300 static UBool hasOverride(const Locale &locale); | 301 static UBool hasOverride(const Locale &locale); |
301 | 302 |
302 /** | 303 /** |
303 * For ICU use only. | 304 * For ICU use only. |
304 * creates a SharedPluralRules object | 305 * creates a SharedPluralRules object |
305 * @internal | 306 * @internal |
306 */ | 307 */ |
307 static PluralRules* U_EXPORT2 internalForLocale(const Locale& locale, UPlura
lType type, UErrorCode& status); | 308 static PluralRules* U_EXPORT2 internalForLocale(const Locale& locale, UPlura
lType type, UErrorCode& status); |
308 | 309 |
309 /** | 310 /** |
310 * For ICU use only. | 311 * For ICU use only. |
311 * Returns handle to the shared, cached PluralRules instance. | 312 * Returns handle to the shared, cached PluralRules instance. |
312 * Caller must call removeRef() on returned value once it is done with | 313 * Caller must call removeRef() on returned value once it is done with |
313 * the shared instance. | 314 * the shared instance. |
314 * @internal | 315 * @internal |
315 */ | 316 */ |
316 static const SharedPluralRules* U_EXPORT2 createSharedInstance( | 317 static const SharedPluralRules* U_EXPORT2 createSharedInstance( |
317 const Locale& locale, UPluralType type, UErrorCode& status); | 318 const Locale& locale, UPluralType type, UErrorCode& status); |
318 | 319 |
319 | 320 |
320 #endif /* U_HIDE_INTERNAL_API */ | 321 #endif /* U_HIDE_INTERNAL_API */ |
321 | 322 |
322 /** | 323 /** |
323 * Given a number, returns the keyword of the first rule that applies to | 324 * Given a number, returns the keyword of the first rule that applies to |
324 * the number. This function can be used with isKeyword* functions to | 325 * the number. This function can be used with isKeyword* functions to |
325 * determine the keyword for default plural rules. | 326 * determine the keyword for default plural rules. |
326 * | 327 * |
327 * @param number The number for which the rule has to be determined. | 328 * @param number The number for which the rule has to be determined. |
328 * @return The keyword of the selected rule. | 329 * @return The keyword of the selected rule. |
329 * @stable ICU 4.0 | 330 * @stable ICU 4.0 |
330 */ | 331 */ |
331 UnicodeString select(int32_t number) const; | 332 UnicodeString select(int32_t number) const; |
332 | 333 |
333 /** | 334 /** |
334 * Given a number, returns the keyword of the first rule that applies to | 335 * Given a number, returns the keyword of the first rule that applies to |
335 * the number. This function can be used with isKeyword* functions to | 336 * the number. This function can be used with isKeyword* functions to |
336 * determine the keyword for default plural rules. | 337 * determine the keyword for default plural rules. |
337 * | 338 * |
338 * @param number The number for which the rule has to be determined. | 339 * @param number The number for which the rule has to be determined. |
339 * @return The keyword of the selected rule. | 340 * @return The keyword of the selected rule. |
340 * @stable ICU 4.0 | 341 * @stable ICU 4.0 |
341 */ | 342 */ |
342 UnicodeString select(double number) const; | 343 UnicodeString select(double number) const; |
343 | 344 |
344 #ifndef U_HIDE_INTERNAL_API | 345 #ifndef U_HIDE_INTERNAL_API |
345 /** | 346 /** |
346 * @internal | 347 * @internal |
347 */ | 348 */ |
348 UnicodeString select(const FixedDecimal &number) const; | 349 UnicodeString select(const FixedDecimal &number) const; |
| 350 /** |
| 351 * @internal |
| 352 */ |
| 353 UnicodeString select(const VisibleDigitsWithExponent &number) const; |
349 #endif /* U_HIDE_INTERNAL_API */ | 354 #endif /* U_HIDE_INTERNAL_API */ |
350 | 355 |
351 /** | 356 /** |
352 * Returns a list of all rule keywords used in this <code>PluralRules</code> | 357 * Returns a list of all rule keywords used in this <code>PluralRules</code> |
353 * object. The rule 'other' is always present by default. | 358 * object. The rule 'other' is always present by default. |
354 * | 359 * |
355 * @param status Output param set to success/failure code on exit, which | 360 * @param status Output param set to success/failure code on exit, which |
356 * must not indicate a failure before the function call. | 361 * must not indicate a failure before the function call. |
357 * @return StringEnumeration with the keywords. | 362 * @return StringEnumeration with the keywords. |
358 * The caller must delete the object. | 363 * The caller must delete the object. |
359 * @stable ICU 4.0 | 364 * @stable ICU 4.0 |
360 */ | 365 */ |
361 StringEnumeration* getKeywords(UErrorCode& status) const; | 366 StringEnumeration* getKeywords(UErrorCode& status) const; |
362 | 367 |
| 368 #ifndef U_HIDE_DEPRECATED_API |
363 /** | 369 /** |
364 * Returns a unique value for this keyword if it exists, else the constant | 370 * Deprecated Function, does not return useful results. |
365 * UPLRULES_NO_UNIQUE_VALUE. | 371 * |
| 372 * Originally intended to return a unique value for this keyword if it exist
s, |
| 373 * else the constant UPLRULES_NO_UNIQUE_VALUE. |
366 * | 374 * |
367 * @param keyword The keyword. | 375 * @param keyword The keyword. |
368 * @return The unique value that generates the keyword, or | 376 * @return Stub deprecated function returns UPLRULES_NO_UNIQUE_VALUE
always. |
369 * UPLRULES_NO_UNIQUE_VALUE if the keyword is undefined or th
ere is no | 377 * @deprecated ICU 55 |
370 * unique value that generates this keyword. | |
371 * @stable ICU 4.8 | |
372 */ | 378 */ |
373 double getUniqueKeywordValue(const UnicodeString& keyword); | 379 double getUniqueKeywordValue(const UnicodeString& keyword); |
374 | 380 |
375 /** | 381 /** |
376 * Returns all the values for which select() would return the keyword. If | 382 * Deprecated Function, does not produce useful results. |
377 * the keyword is unknown, returns no values, but this is not an error. If | 383 * |
| 384 * Orginally intended to return all the values for which select() would retu
rn the keyword. |
| 385 * If the keyword is unknown, returns no values, but this is not an error.
If |
378 * the number of values is unlimited, returns no values and -1 as the | 386 * the number of values is unlimited, returns no values and -1 as the |
379 * count. | 387 * count. |
380 * | 388 * |
381 * The number of returned values is typically small. | 389 * The number of returned values is typically small. |
382 * | 390 * |
383 * @param keyword The keyword. | 391 * @param keyword The keyword. |
384 * @param dest Array into which to put the returned values. May | 392 * @param dest Array into which to put the returned values. May |
385 * be NULL if destCapacity is 0. | 393 * be NULL if destCapacity is 0. |
386 * @param destCapacity The capacity of the array, must be at least 0. | 394 * @param destCapacity The capacity of the array, must be at least 0. |
387 * @param status The error code. | 395 * @param status The error code. Deprecated function, always sets U_UN
SUPPORTED_ERROR. |
388 * @return The count of values available, or -1. This count | 396 * @return The count of values available, or -1. This count |
389 * can be larger than destCapacity, but no more than | 397 * can be larger than destCapacity, but no more than |
390 * destCapacity values will be written. | 398 * destCapacity values will be written. |
391 * @stable ICU 4.8 | 399 * @deprecated ICU 55 |
392 */ | 400 */ |
393 int32_t getAllKeywordValues(const UnicodeString &keyword, | 401 int32_t getAllKeywordValues(const UnicodeString &keyword, |
394 double *dest, int32_t destCapacity, | 402 double *dest, int32_t destCapacity, |
395 UErrorCode& status); | 403 UErrorCode& status); |
| 404 #endif /* U_HIDE_DEPRECATED_API */ |
396 | 405 |
397 /** | 406 /** |
398 * Returns sample values for which select() would return the keyword. If | 407 * Returns sample values for which select() would return the keyword. If |
399 * the keyword is unknown, returns no values, but this is not an error. | 408 * the keyword is unknown, returns no values, but this is not an error. |
400 * | 409 * |
401 * The number of returned values is typically small. | 410 * The number of returned values is typically small. |
402 * | 411 * |
403 * @param keyword The keyword. | 412 * @param keyword The keyword. |
404 * @param dest Array into which to put the returned values. May | 413 * @param dest Array into which to put the returned values. May |
405 * be NULL if destCapacity is 0. | 414 * be NULL if destCapacity is 0. |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
492 | 501 |
493 friend class PluralRuleParser; | 502 friend class PluralRuleParser; |
494 }; | 503 }; |
495 | 504 |
496 U_NAMESPACE_END | 505 U_NAMESPACE_END |
497 | 506 |
498 #endif /* #if !UCONFIG_NO_FORMATTING */ | 507 #endif /* #if !UCONFIG_NO_FORMATTING */ |
499 | 508 |
500 #endif // _PLURRULE | 509 #endif // _PLURRULE |
501 //eof | 510 //eof |
OLD | NEW |