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