00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __COMPACT_DECIMAL_FORMAT_H__
00012 #define __COMPACT_DECIMAL_FORMAT_H__
00013
00014 #include "unicode/utypes.h"
00020 #if !UCONFIG_NO_FORMATTING
00021
00022 #include "unicode/decimfmt.h"
00023
00024 struct UHashtable;
00025
00026 U_NAMESPACE_BEGIN
00027
00028 class PluralRules;
00029
00052 class U_I18N_API CompactDecimalFormat : public DecimalFormat {
00053 public:
00054
00062 static CompactDecimalFormat* U_EXPORT2 createInstance(
00063 const Locale& inLocale, UNumberCompactStyle style, UErrorCode& status);
00064
00071 CompactDecimalFormat(const CompactDecimalFormat& source);
00072
00077 virtual ~CompactDecimalFormat();
00078
00085 CompactDecimalFormat& operator=(const CompactDecimalFormat& rhs);
00086
00094 virtual Format* clone() const;
00095
00104 virtual UBool operator==(const Format& other) const;
00105
00106
00107 using DecimalFormat::format;
00108
00120 virtual UnicodeString& format(double number,
00121 UnicodeString& appendTo,
00122 FieldPosition& pos) const;
00123
00136 virtual UnicodeString& format(double number,
00137 UnicodeString& appendTo,
00138 FieldPosition& pos,
00139 UErrorCode &status) const;
00140
00155 virtual UnicodeString& format(double number,
00156 UnicodeString& appendTo,
00157 FieldPositionIterator* posIter,
00158 UErrorCode& status) const;
00159
00160
00172 virtual UnicodeString& format(int32_t number,
00173 UnicodeString& appendTo,
00174 FieldPosition& pos) const;
00175
00187 virtual UnicodeString& format(int32_t number,
00188 UnicodeString& appendTo,
00189 FieldPosition& pos,
00190 UErrorCode &status) const;
00191
00206 virtual UnicodeString& format(int32_t number,
00207 UnicodeString& appendTo,
00208 FieldPositionIterator* posIter,
00209 UErrorCode& status) const;
00210
00222 virtual UnicodeString& format(int64_t number,
00223 UnicodeString& appendTo,
00224 FieldPosition& pos) const;
00225
00237 virtual UnicodeString& format(int64_t number,
00238 UnicodeString& appendTo,
00239 FieldPosition& pos,
00240 UErrorCode &status) const;
00241
00256 virtual UnicodeString& format(int64_t number,
00257 UnicodeString& appendTo,
00258 FieldPositionIterator* posIter,
00259 UErrorCode& status) const;
00260
00277 virtual UnicodeString& format(const StringPiece &number,
00278 UnicodeString& appendTo,
00279 FieldPositionIterator* posIter,
00280 UErrorCode& status) const;
00281
00297 virtual UnicodeString& format(const DigitList &number,
00298 UnicodeString& appendTo,
00299 FieldPositionIterator* posIter,
00300 UErrorCode& status) const;
00301
00317 virtual UnicodeString& format(const DigitList &number,
00318 UnicodeString& appendTo,
00319 FieldPosition& pos,
00320 UErrorCode& status) const;
00321
00331 virtual void parse(const UnicodeString& text,
00332 Formattable& result,
00333 ParsePosition& parsePosition) const;
00334
00344 virtual void parse(const UnicodeString& text,
00345 Formattable& result,
00346 UErrorCode& status) const;
00347
00368 virtual CurrencyAmount* parseCurrency(const UnicodeString& text,
00369 ParsePosition& pos) const;
00370
00382 static UClassID U_EXPORT2 getStaticClassID();
00383
00395 virtual UClassID getDynamicClassID() const;
00396
00397 private:
00398
00399 const UHashtable* _unitsByVariant;
00400 const double* _divisors;
00401 PluralRules* _pluralRules;
00402
00403
00404 CompactDecimalFormat(const DecimalFormat &, const UHashtable* unitsByVariant, const double* divisors, PluralRules* pluralRules);
00405
00406 UBool eqHelper(const CompactDecimalFormat& that) const;
00407 };
00408
00409 U_NAMESPACE_END
00410
00411 #endif
00412
00413 #endif // __COMPACT_DECIMAL_FORMAT_H__
00414