00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef __COMPACT_DECIMAL_FORMAT_H__
00014 #define __COMPACT_DECIMAL_FORMAT_H__
00015
00016 #include "unicode/utypes.h"
00022 #if !UCONFIG_NO_FORMATTING
00023
00024 #include "unicode/decimfmt.h"
00025
00026 struct UHashtable;
00027
00028 U_NAMESPACE_BEGIN
00029
00030 class PluralRules;
00031
00054 class U_I18N_API CompactDecimalFormat : public DecimalFormat {
00055 public:
00056
00064 static CompactDecimalFormat* U_EXPORT2 createInstance(
00065 const Locale& inLocale, UNumberCompactStyle style, UErrorCode& status);
00066
00073 CompactDecimalFormat(const CompactDecimalFormat& source);
00074
00079 virtual ~CompactDecimalFormat();
00080
00087 CompactDecimalFormat& operator=(const CompactDecimalFormat& rhs);
00088
00096 virtual Format* clone() const;
00097
00106 virtual UBool operator==(const Format& other) const;
00107
00108
00109 using DecimalFormat::format;
00110
00122 virtual UnicodeString& format(double number,
00123 UnicodeString& appendTo,
00124 FieldPosition& pos) const;
00125
00138 virtual UnicodeString& format(double number,
00139 UnicodeString& appendTo,
00140 FieldPosition& pos,
00141 UErrorCode &status) const;
00142
00157 virtual UnicodeString& format(double number,
00158 UnicodeString& appendTo,
00159 FieldPositionIterator* posIter,
00160 UErrorCode& status) const;
00161
00173 virtual UnicodeString& format(int32_t number,
00174 UnicodeString& appendTo,
00175 FieldPosition& pos) const;
00176
00188 virtual UnicodeString& format(int32_t number,
00189 UnicodeString& appendTo,
00190 FieldPosition& pos,
00191 UErrorCode &status) const;
00192
00207 virtual UnicodeString& format(int32_t number,
00208 UnicodeString& appendTo,
00209 FieldPositionIterator* posIter,
00210 UErrorCode& status) const;
00211
00223 virtual UnicodeString& format(int64_t number,
00224 UnicodeString& appendTo,
00225 FieldPosition& pos) const;
00226
00238 virtual UnicodeString& format(int64_t number,
00239 UnicodeString& appendTo,
00240 FieldPosition& pos,
00241 UErrorCode &status) const;
00242
00257 virtual UnicodeString& format(int64_t number,
00258 UnicodeString& appendTo,
00259 FieldPositionIterator* posIter,
00260 UErrorCode& status) const;
00261
00278 virtual UnicodeString& format(StringPiece number,
00279 UnicodeString& appendTo,
00280 FieldPositionIterator* posIter,
00281 UErrorCode& status) const;
00282
00298 virtual UnicodeString& format(const DigitList &number,
00299 UnicodeString& appendTo,
00300 FieldPositionIterator* posIter,
00301 UErrorCode& status) const;
00302
00318 virtual UnicodeString& format(const DigitList &number,
00319 UnicodeString& appendTo,
00320 FieldPosition& pos,
00321 UErrorCode& status) const;
00322
00332 virtual void parse(const UnicodeString& text,
00333 Formattable& result,
00334 ParsePosition& parsePosition) const;
00335
00345 virtual void parse(const UnicodeString& text,
00346 Formattable& result,
00347 UErrorCode& status) const;
00348
00369 virtual CurrencyAmount* parseCurrency(const UnicodeString& text,
00370 ParsePosition& pos) const;
00371
00383 static UClassID U_EXPORT2 getStaticClassID();
00384
00396 virtual UClassID getDynamicClassID() const;
00397
00398 private:
00399
00400 const UHashtable* _unitsByVariant;
00401 const double* _divisors;
00402 PluralRules* _pluralRules;
00403
00404
00405 CompactDecimalFormat(const DecimalFormat &, const UHashtable* unitsByVariant, const double* divisors, PluralRules* pluralRules);
00406
00407 UBool eqHelper(const CompactDecimalFormat& that) const;
00408 };
00409
00410 U_NAMESPACE_END
00411
00412 #endif
00413
00414 #endif // __COMPACT_DECIMAL_FORMAT_H__
00415