|
1 /* |
|
2 ********************************************************************** |
|
3 * Copyright (c) 2004-2006, International Business Machines |
|
4 * Corporation and others. All Rights Reserved. |
|
5 ********************************************************************** |
|
6 * Author: Alan Liu |
|
7 * Created: April 26, 2004 |
|
8 * Since: ICU 3.0 |
|
9 ********************************************************************** |
|
10 */ |
|
11 #ifndef __CURRENCYUNIT_H__ |
|
12 #define __CURRENCYUNIT_H__ |
|
13 |
|
14 #include "unicode/utypes.h" |
|
15 |
|
16 #if !UCONFIG_NO_FORMATTING |
|
17 |
|
18 #include "unicode/measunit.h" |
|
19 |
|
20 /** |
|
21 * \file |
|
22 * \brief C++ API: Currency Unit Information. |
|
23 */ |
|
24 |
|
25 U_NAMESPACE_BEGIN |
|
26 |
|
27 /** |
|
28 * A unit of currency, such as USD (U.S. dollars) or JPY (Japanese |
|
29 * yen). This class is a thin wrapper over a UChar string that |
|
30 * subclasses MeasureUnit, for use with Measure and MeasureFormat. |
|
31 * |
|
32 * @author Alan Liu |
|
33 * @stable ICU 3.0 |
|
34 */ |
|
35 class U_I18N_API CurrencyUnit: public MeasureUnit { |
|
36 public: |
|
37 /** |
|
38 * Construct an object with the given ISO currency code. |
|
39 * @param isoCode the 3-letter ISO 4217 currency code; must not be |
|
40 * NULL and must have length 3 |
|
41 * @param ec input-output error code. If the isoCode is invalid, |
|
42 * then this will be set to a failing value. |
|
43 * @stable ICU 3.0 |
|
44 */ |
|
45 CurrencyUnit(const UChar* isoCode, UErrorCode &ec); |
|
46 |
|
47 /** |
|
48 * Copy constructor |
|
49 * @stable ICU 3.0 |
|
50 */ |
|
51 CurrencyUnit(const CurrencyUnit& other); |
|
52 |
|
53 /** |
|
54 * Assignment operator |
|
55 * @stable ICU 3.0 |
|
56 */ |
|
57 CurrencyUnit& operator=(const CurrencyUnit& other); |
|
58 |
|
59 /** |
|
60 * Return a polymorphic clone of this object. The result will |
|
61 * have the same class as returned by getDynamicClassID(). |
|
62 * @stable ICU 3.0 |
|
63 */ |
|
64 virtual UObject* clone() const; |
|
65 |
|
66 /** |
|
67 * Destructor |
|
68 * @stable ICU 3.0 |
|
69 */ |
|
70 virtual ~CurrencyUnit(); |
|
71 |
|
72 /** |
|
73 * Equality operator. Return true if this object is equal |
|
74 * to the given object. |
|
75 * @stable ICU 3.0 |
|
76 */ |
|
77 UBool operator==(const UObject& other) const; |
|
78 |
|
79 /** |
|
80 * Returns a unique class ID for this object POLYMORPHICALLY. |
|
81 * This method implements a simple form of RTTI used by ICU. |
|
82 * @return The class ID for this object. All objects of a given |
|
83 * class have the same class ID. Objects of other classes have |
|
84 * different class IDs. |
|
85 * @stable ICU 3.0 |
|
86 */ |
|
87 virtual UClassID getDynamicClassID() const; |
|
88 |
|
89 /** |
|
90 * Returns the class ID for this class. This is used to compare to |
|
91 * the return value of getDynamicClassID(). |
|
92 * @return The class ID for all objects of this class. |
|
93 * @stable ICU 3.0 |
|
94 */ |
|
95 static UClassID U_EXPORT2 getStaticClassID(); |
|
96 |
|
97 /** |
|
98 * Return the ISO currency code of this object. |
|
99 * @stable ICU 3.0 |
|
100 */ |
|
101 inline const UChar* getISOCurrency() const; |
|
102 |
|
103 private: |
|
104 /** |
|
105 * The ISO 4217 code of this object. |
|
106 */ |
|
107 UChar isoCode[4]; |
|
108 }; |
|
109 |
|
110 inline const UChar* CurrencyUnit::getISOCurrency() const { |
|
111 return isoCode; |
|
112 } |
|
113 |
|
114 U_NAMESPACE_END |
|
115 |
|
116 #endif // !UCONFIG_NO_FORMATTING |
|
117 #endif // __CURRENCYUNIT_H__ |