xref: /aosp_15_r20/external/icu/libicu/cts_headers/currfmt.h (revision 0e209d3975ff4a8c132096b14b0e9364a753506e)
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