Home | History | Annotate | Download | only in i18n
      1 // Copyright (C) 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 
     22 U_NAMESPACE_BEGIN
     23 
     24 class 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  */
     38 class 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 Format* 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  private:
     91 
     92     NumberFormat* fmt;
     93 };
     94 
     95 U_NAMESPACE_END
     96 
     97 #endif // #if !UCONFIG_NO_FORMATTING
     98 #endif // #ifndef CURRENCYFORMAT_H
     99