"Fossies" - the Fresh Open Source Software Archive

Member "choicfmt_8h_source.html" (3 Oct 2019, 40950 Bytes) of package /linux/misc/icu4c-65_1-docs.zip:


Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. You can here alternatively try to browse the pure source code or just view or download the uninterpreted raw source code. If the rendering is insufficient you may try to find and view the page on the project site itself.

ICU 65.1  65.1
choicfmt.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 ********************************************************************************
5 * Copyright (C) 1997-2013, International Business Machines
6 * Corporation and others. All Rights Reserved.
7 ********************************************************************************
8 *
9 * File CHOICFMT.H
10 *
11 * Modification History:
12 *
13 * Date Name Description
14 * 02/19/97 aliu Converted from java.
15 * 03/20/97 helena Finished first cut of implementation and got rid
16 * of nextDouble/previousDouble and replaced with
17 * boolean array.
18 * 4/10/97 aliu Clean up. Modified to work on AIX.
19 * 8/6/97 nos Removed overloaded constructor, member var 'buffer'.
20 * 07/22/98 stephen Removed operator!= (implemented in Format)
21 ********************************************************************************
22 */
23 
24 #ifndef CHOICFMT_H
25 #define CHOICFMT_H
26 
27 #include "unicode/utypes.h"
28 
29 #if U_SHOW_CPLUSPLUS_API
30 
36 #if !UCONFIG_NO_FORMATTING
37 
38 #include "unicode/fieldpos.h"
39 #include "unicode/format.h"
40 #include "unicode/messagepattern.h"
41 #include "unicode/numfmt.h"
42 #include "unicode/unistr.h"
43 
44 #ifndef U_HIDE_DEPRECATED_API
45 
46 U_NAMESPACE_BEGIN
47 
48 class MessageFormat;
49 
177 public:
186  ChoiceFormat(const UnicodeString& pattern,
187  UErrorCode& status);
188 
189 
202  ChoiceFormat(const double* limits,
203  const UnicodeString* formats,
204  int32_t count );
205 
220  ChoiceFormat(const double* limits,
221  const UBool* closures,
222  const UnicodeString* formats,
223  int32_t count);
224 
231  ChoiceFormat(const ChoiceFormat& that);
232 
239  const ChoiceFormat& operator=(const ChoiceFormat& that);
240 
245  virtual ~ChoiceFormat();
246 
254  virtual ChoiceFormat* clone() const;
255 
264  virtual UBool operator==(const Format& other) const;
265 
274  virtual void applyPattern(const UnicodeString& pattern,
275  UErrorCode& status);
276 
287  virtual void applyPattern(const UnicodeString& pattern,
288  UParseError& parseError,
289  UErrorCode& status);
298  virtual UnicodeString& toPattern(UnicodeString &pattern) const;
299 
313  virtual void setChoices(const double* limitsToCopy,
314  const UnicodeString* formatsToCopy,
315  int32_t count );
316 
327  virtual void setChoices(const double* limits,
328  const UBool* closures,
329  const UnicodeString* formats,
330  int32_t count);
331 
340  virtual const double* getLimits(int32_t& count) const;
341 
350  virtual const UBool* getClosures(int32_t& count) const;
351 
360  virtual const UnicodeString* getFormats(int32_t& count) const;
361 
362 
363  using NumberFormat::format;
364 
376  virtual UnicodeString& format(double number,
377  UnicodeString& appendTo,
378  FieldPosition& pos) const;
390  virtual UnicodeString& format(int32_t number,
391  UnicodeString& appendTo,
392  FieldPosition& pos) const;
393 
405  virtual UnicodeString& format(int64_t number,
406  UnicodeString& appendTo,
407  FieldPosition& pos) const;
408 
423  virtual UnicodeString& format(const Formattable* objs,
424  int32_t cnt,
425  UnicodeString& appendTo,
426  FieldPosition& pos,
427  UErrorCode& success) const;
428 
429  using NumberFormat::parse;
430 
445  virtual void parse(const UnicodeString& text,
446  Formattable& result,
447  ParsePosition& parsePosition) const;
448 
457  virtual UClassID getDynamicClassID(void) const;
458 
470  static UClassID U_EXPORT2 getStaticClassID(void);
471 
472 private:
479  static UnicodeString& dtos(double value, UnicodeString& string);
480 
481  ChoiceFormat(); // default constructor not implemented
482 
493  ChoiceFormat(const UnicodeString& newPattern,
494  UParseError& parseError,
495  UErrorCode& status);
496 
497  friend class MessageFormat;
498 
499  virtual void setChoices(const double* limits,
500  const UBool* closures,
501  const UnicodeString* formats,
502  int32_t count,
503  UErrorCode &errorCode);
504 
512  static int32_t findSubMessage(const MessagePattern &pattern, int32_t partIndex, double number);
513 
514  static double parseArgument(
515  const MessagePattern &pattern, int32_t partIndex,
516  const UnicodeString &source, ParsePosition &pos);
517 
526  static int32_t matchStringUntilLimitPart(
527  const MessagePattern &pattern, int32_t partIndex, int32_t limitPartIndex,
528  const UnicodeString &source, int32_t sourceOffset);
529 
536  UErrorCode constructorErrorCode;
537 
545  MessagePattern msgPattern;
546 
586  // double* fChoiceLimits;
587  // UBool* fClosures;
588  // UnicodeString* fChoiceFormats;
589  // int32_t fCount;
590 };
591 
592 
593 U_NAMESPACE_END
594 
595 #endif // U_HIDE_DEPRECATED_API
596 #endif /* #if !UCONFIG_NO_FORMATTING */
597 
598 #endif /* U_SHOW_CPLUSPLUS_API */
599 
600 #endif // CHOICFMT_H
601 //eof
Base class for all formats.
Definition: format.h:98
virtual UnicodeString & format(const Formattable &obj, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const
Format an object to produce a string.
virtual UClassID getDynamicClassID(void) const =0
Returns a unique class ID POLYMORPHICALLY.
virtual void parse(const UnicodeString &text, Formattable &result, ParsePosition &parsePosition) const =0
Return a long if possible (e.g.
C++ API: Unicode String.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:96
C++ API: Base class for all formats.
Parses and represents ICU MessageFormat patterns.
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside...
Definition: utypes.h:301
C++ API: FieldPosition identifies the fields in a formatted output.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
virtual NumberFormat * clone() const =0
Clones this object polymorphically.
static UClassID getStaticClassID(void)
Return the class ID for this class.
FieldPosition is a simple class used by Format and its subclasses to identify fields in formatted out...
Definition: fieldpos.h:110
ParsePosition is a simple class used by Format and its subclasses to keep track of the current positi...
Definition: parsepos.h:52
ChoiceFormat converts between ranges of numeric values and strings for those ranges.
Definition: choicfmt.h:176
A UParseError struct is used to returned detailed information about parsing errors.
Definition: parseerr.h:58
Basic definitions for ICU, for both C and C++ APIs.
virtual UBool operator==(const Format &other) const
Return true if the given Format objects are semantically equal.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:294
Formattable objects can be passed to the Format class or its subclasses for formatting.
Definition: fmtable.h:64
C++ API: MessagePattern class: Parses and represents ICU MessageFormat patterns.
C++ API: Compatibility APIs for number formatting.
NumberFormat & operator=(const NumberFormat &)
Assignment operator.
int8_t UBool
The ICU boolean type.
Definition: umachine.h:261