]> git.saurik.com Git - apple/icu.git/blame - icuSources/i18n/unicode/currunit.h
ICU-57131.0.1.tar.gz
[apple/icu.git] / icuSources / i18n / unicode / currunit.h
CommitLineData
374ca955
A
1/*
2**********************************************************************
57a6839d 3* Copyright (c) 2004-2014, International Business Machines
374ca955
A
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
73c04bcf
A
20/**
21 * \file
22 * \brief C++ API: Currency Unit Information.
23 */
24
374ca955
A
25U_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
73c04bcf 33 * @stable ICU 3.0
374ca955
A
34 */
35class 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.
73c04bcf 43 * @stable ICU 3.0
374ca955
A
44 */
45 CurrencyUnit(const UChar* isoCode, UErrorCode &ec);
46
47 /**
48 * Copy constructor
73c04bcf 49 * @stable ICU 3.0
374ca955
A
50 */
51 CurrencyUnit(const CurrencyUnit& other);
52
53 /**
54 * Assignment operator
73c04bcf 55 * @stable ICU 3.0
374ca955
A
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().
73c04bcf 62 * @stable ICU 3.0
374ca955
A
63 */
64 virtual UObject* clone() const;
65
66 /**
67 * Destructor
73c04bcf 68 * @stable ICU 3.0
374ca955
A
69 */
70 virtual ~CurrencyUnit();
71
374ca955
A
72 /**
73 * Returns a unique class ID for this object POLYMORPHICALLY.
74 * This method implements a simple form of RTTI used by ICU.
75 * @return The class ID for this object. All objects of a given
76 * class have the same class ID. Objects of other classes have
77 * different class IDs.
73c04bcf 78 * @stable ICU 3.0
374ca955
A
79 */
80 virtual UClassID getDynamicClassID() const;
81
82 /**
83 * Returns the class ID for this class. This is used to compare to
84 * the return value of getDynamicClassID().
85 * @return The class ID for all objects of this class.
73c04bcf 86 * @stable ICU 3.0
374ca955
A
87 */
88 static UClassID U_EXPORT2 getStaticClassID();
89
90 /**
91 * Return the ISO currency code of this object.
73c04bcf 92 * @stable ICU 3.0
374ca955
A
93 */
94 inline const UChar* getISOCurrency() const;
95
96 private:
97 /**
98 * The ISO 4217 code of this object.
99 */
100 UChar isoCode[4];
101};
102
103inline const UChar* CurrencyUnit::getISOCurrency() const {
104 return isoCode;
105}
106
107U_NAMESPACE_END
108
109#endif // !UCONFIG_NO_FORMATTING
110#endif // __CURRENCYUNIT_H__