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