1/* 2********************************************************************** 3* Copyright (c) 2004-2010, International Business Machines 4* Corporation and others. All Rights Reserved. 5********************************************************************** 6* Author: Alan Liu 7* Created: April 20, 2004 8* Since: ICU 3.0 9********************************************************************** 10*/ 11#ifndef CURRENCYFORMAT_H 12#define CURRENCYFORMAT_H 13 14#include "unicode/utypes.h" 15 16#if !UCONFIG_NO_FORMATTING 17 18#include "unicode/measfmt.h" 19 20U_NAMESPACE_BEGIN 21 22class NumberFormat; 23 24/** 25 * Temporary internal concrete subclass of MeasureFormat implementing 26 * parsing and formatting of currency amount objects. This class is 27 * likely to be redesigned and rewritten in the near future. 28 * 29 * <p>This class currently delegates to DecimalFormat for parsing and 30 * formatting. 31 * 32 * @see MeasureFormat 33 * @author Alan Liu 34 * @internal 35 */ 36class CurrencyFormat : public MeasureFormat { 37 38 public: 39 40 /** 41 * Construct a CurrencyFormat for the given locale. 42 */ 43 CurrencyFormat(const Locale& locale, UErrorCode& ec); 44 45 /** 46 * Copy constructor. 47 */ 48 CurrencyFormat(const CurrencyFormat& other); 49 50 /** 51 * Destructor. 52 */ 53 virtual ~CurrencyFormat(); 54 55 /** 56 * Override Format API. 57 */ 58 virtual UBool operator==(const Format& other) const; 59 60 /** 61 * Override Format API. 62 */ 63 virtual Format* clone() const; 64 65 66 using MeasureFormat::format; 67 68 /** 69 * Override Format API. 70 */ 71 virtual UnicodeString& format(const Formattable& obj, 72 UnicodeString& appendTo, 73 FieldPosition& pos, 74 UErrorCode& ec) const; 75 76 /** 77 * Override Format API. 78 */ 79 virtual void parseObject(const UnicodeString& source, 80 Formattable& result, 81 ParsePosition& pos) const; 82 83 /** 84 * Override Format API. 85 */ 86 virtual UClassID getDynamicClassID() const; 87 88 /** 89 * Returns the class ID for this class. 90 */ 91 static UClassID U_EXPORT2 getStaticClassID(); 92 93 private: 94 95 NumberFormat* fmt; 96}; 97 98U_NAMESPACE_END 99 100#endif // #if !UCONFIG_NO_FORMATTING 101#endif // #ifndef CURRENCYFORMAT_H 102