ICU 51.2  51.2
compactdecimalformat.h
Go to the documentation of this file.
1 /*
2 ********************************************************************************
3 * Copyright (C) 2012-2013, International Business Machines
4 * Corporation and others. All Rights Reserved.
5 ********************************************************************************
6 *
7 * File COMPACTDECIMALFORMAT.H
8 ********************************************************************************
9 */
10 
11 #ifndef __COMPACT_DECIMAL_FORMAT_H__
12 #define __COMPACT_DECIMAL_FORMAT_H__
13 
14 #include "unicode/utypes.h"
20 #if !UCONFIG_NO_FORMATTING
21 #ifndef U_HIDE_DRAFT_API
22 
23 #include "unicode/decimfmt.h"
24 
25 struct UHashtable;
26 
28 
29 class PluralRules;
30 
54 public:
55 
63  static CompactDecimalFormat* U_EXPORT2 createInstance(
64  const Locale& inLocale, UNumberCompactStyle style, UErrorCode& status);
65 
73 
78  virtual ~CompactDecimalFormat();
79 
87 
95  virtual Format* clone() const;
96 
105  virtual UBool operator==(const Format& other) const;
106 
107 
108  using DecimalFormat::format;
109 
121  virtual UnicodeString& format(double number,
122  UnicodeString& appendTo,
123  FieldPosition& pos) const;
124 
139  virtual UnicodeString& format(double number,
140  UnicodeString& appendTo,
141  FieldPositionIterator* posIter,
142  UErrorCode& status) const;
143 
155  virtual UnicodeString& format(int64_t number,
156  UnicodeString& appendTo,
157  FieldPosition& pos) const;
158 
173  virtual UnicodeString& format(int64_t number,
174  UnicodeString& appendTo,
175  FieldPositionIterator* posIter,
176  UErrorCode& status) const;
177 
194  virtual UnicodeString& format(const StringPiece &number,
195  UnicodeString& appendTo,
196  FieldPositionIterator* posIter,
197  UErrorCode& status) const;
198 
214  virtual UnicodeString& format(const DigitList &number,
215  UnicodeString& appendTo,
216  FieldPositionIterator* posIter,
217  UErrorCode& status) const;
218 
234  virtual UnicodeString& format(const DigitList &number,
235  UnicodeString& appendTo,
236  FieldPosition& pos,
237  UErrorCode& status) const;
238 
248  virtual void parse(const UnicodeString& text,
249  Formattable& result,
250  ParsePosition& parsePosition) const;
251 
261  virtual void parse(const UnicodeString& text,
262  Formattable& result,
263  UErrorCode& status) const;
264 
265 /* Cannot use #ifndef U_HIDE_INTERNAL_API for the following draft method since it is virtual */
286  virtual CurrencyAmount* parseCurrency(const UnicodeString& text,
287  ParsePosition& pos) const;
288 
300  static UClassID U_EXPORT2 getStaticClassID();
301 
313  virtual UClassID getDynamicClassID() const;
314 
315 private:
316 
317  const UHashtable* _unitsByVariant;
318  const double* _divisors;
319  PluralRules* _pluralRules;
320 
321  // Default constructor not implemented.
322  CompactDecimalFormat(const DecimalFormat &, const UHashtable* unitsByVariant, const double* divisors, PluralRules* pluralRules);
323 
324  UBool eqHelper(const CompactDecimalFormat& that) const;
325 };
326 
328 
329 #endif /* U_HIDE_DRAFT_API */
330 #endif /* #if !UCONFIG_NO_FORMATTING */
331 
332 #endif // __COMPACT_DECIMAL_FORMAT_H__
333 //eof