ICU 57.1  57.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
compactdecimalformat.h
Go to the documentation of this file.
1 /*
2 ********************************************************************************
3 * Copyright (C) 2012-2016, 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 
22 #include "unicode/decimfmt.h"
23 
24 struct UHashtable;
25 
27 
28 class PluralRules;
29 
53 public:
54 
62  static CompactDecimalFormat* U_EXPORT2 createInstance(
63  const Locale& inLocale, UNumberCompactStyle style, UErrorCode& status);
64 
72 
77  virtual ~CompactDecimalFormat();
78 
86 
94  virtual Format* clone() const;
95 
104  virtual UBool operator==(const Format& other) const;
105 
106 
107  using DecimalFormat::format;
108 
120  virtual UnicodeString& format(double number,
121  UnicodeString& appendTo,
122  FieldPosition& pos) const;
123 
136  virtual UnicodeString& format(double number,
137  UnicodeString& appendTo,
138  FieldPosition& pos,
139  UErrorCode &status) const;
140 
155  virtual UnicodeString& format(double number,
156  UnicodeString& appendTo,
157  FieldPositionIterator* posIter,
158  UErrorCode& status) const;
159 
160  /* Cannot use #ifndef U_HIDE_DRAFT_API for the following draft method since it is virtual. */
172  virtual UnicodeString& format(int32_t number,
173  UnicodeString& appendTo,
174  FieldPosition& pos) const;
175 
187  virtual UnicodeString& format(int32_t number,
188  UnicodeString& appendTo,
189  FieldPosition& pos,
190  UErrorCode &status) const;
191 
206  virtual UnicodeString& format(int32_t number,
207  UnicodeString& appendTo,
208  FieldPositionIterator* posIter,
209  UErrorCode& status) const;
210 
222  virtual UnicodeString& format(int64_t number,
223  UnicodeString& appendTo,
224  FieldPosition& pos) const;
225 
237  virtual UnicodeString& format(int64_t number,
238  UnicodeString& appendTo,
239  FieldPosition& pos,
240  UErrorCode &status) const;
241 
256  virtual UnicodeString& format(int64_t number,
257  UnicodeString& appendTo,
258  FieldPositionIterator* posIter,
259  UErrorCode& status) const;
260 
277  virtual UnicodeString& format(const StringPiece &number,
278  UnicodeString& appendTo,
279  FieldPositionIterator* posIter,
280  UErrorCode& status) const;
281 
297  virtual UnicodeString& format(const DigitList &number,
298  UnicodeString& appendTo,
299  FieldPositionIterator* posIter,
300  UErrorCode& status) const;
301 
317  virtual UnicodeString& format(const DigitList &number,
318  UnicodeString& appendTo,
319  FieldPosition& pos,
320  UErrorCode& status) const;
321 
331  virtual void parse(const UnicodeString& text,
332  Formattable& result,
333  ParsePosition& parsePosition) const;
334 
344  virtual void parse(const UnicodeString& text,
345  Formattable& result,
346  UErrorCode& status) const;
347 
368  virtual CurrencyAmount* parseCurrency(const UnicodeString& text,
369  ParsePosition& pos) const;
370 
382  static UClassID U_EXPORT2 getStaticClassID();
383 
395  virtual UClassID getDynamicClassID() const;
396 
397 private:
398 
399  const UHashtable* _unitsByVariant;
400  const double* _divisors;
401  PluralRules* _pluralRules;
402 
403  // Default constructor not implemented.
404  CompactDecimalFormat(const DecimalFormat &, const UHashtable* unitsByVariant, const double* divisors, PluralRules* pluralRules);
405 
406  UBool eqHelper(const CompactDecimalFormat& that) const;
407 };
408 
410 
411 #endif /* #if !UCONFIG_NO_FORMATTING */
412 
413 #endif // __COMPACT_DECIMAL_FORMAT_H__
414 //eof