| Index: icu46/source/i18n/unicode/currpinf.h
|
| ===================================================================
|
| --- icu46/source/i18n/unicode/currpinf.h (revision 0)
|
| +++ icu46/source/i18n/unicode/currpinf.h (revision 0)
|
| @@ -0,0 +1,259 @@
|
| +/*
|
| + *******************************************************************************
|
| + * Copyright (C) 2009-2010, International Business Machines Corporation and *
|
| + * others. All Rights Reserved. *
|
| + *******************************************************************************
|
| + */
|
| +#ifndef CURRPINF_H
|
| +#define CURRPINF_H
|
| +
|
| +#include "unicode/utypes.h"
|
| +
|
| +/**
|
| + * \file
|
| + * \brief C++ API: Currency Plural Information used by Decimal Format
|
| + */
|
| +
|
| +#if !UCONFIG_NO_FORMATTING
|
| +
|
| +#include "unicode/unistr.h"
|
| +
|
| +union UHashTok;
|
| +
|
| +U_NAMESPACE_BEGIN
|
| +
|
| +class Locale;
|
| +class PluralRules;
|
| +class Hashtable;
|
| +
|
| +/**
|
| + * This class represents the information needed by
|
| + * DecimalFormat to format currency plural,
|
| + * such as "3.00 US dollars" or "1.00 US dollar".
|
| + * DecimalFormat creates for itself an instance of
|
| + * CurrencyPluralInfo from its locale data.
|
| + * If you need to change any of these symbols, you can get the
|
| + * CurrencyPluralInfo object from your
|
| + * DecimalFormat and modify it.
|
| + *
|
| + * Following are the information needed for currency plural format and parse:
|
| + * locale information,
|
| + * plural rule of the locale,
|
| + * currency plural pattern of the locale.
|
| + *
|
| + * @stable ICU 4.2
|
| + */
|
| +class U_I18N_API CurrencyPluralInfo : public UObject {
|
| +public:
|
| +
|
| + /**
|
| + * Create a CurrencyPluralInfo object for the default locale.
|
| + * @param status output param set to success/failure code on exit
|
| + * @stable ICU 4.2
|
| + */
|
| + CurrencyPluralInfo(UErrorCode& status);
|
| +
|
| + /**
|
| + * Create a CurrencyPluralInfo object for the given locale.
|
| + * @param locale the locale
|
| + * @param status output param set to success/failure code on exit
|
| + * @stable ICU 4.2
|
| + */
|
| + CurrencyPluralInfo(const Locale& locale, UErrorCode& status);
|
| +
|
| + /**
|
| + * Copy constructor
|
| + *
|
| + * @stable ICU 4.2
|
| + */
|
| + CurrencyPluralInfo(const CurrencyPluralInfo& info);
|
| +
|
| +
|
| + /**
|
| + * Assignment operator
|
| + *
|
| + * @stable ICU 4.2
|
| + */
|
| + CurrencyPluralInfo& operator=(const CurrencyPluralInfo& info);
|
| +
|
| +
|
| + /**
|
| + * Destructor
|
| + *
|
| + * @stable ICU 4.2
|
| + */
|
| + virtual ~CurrencyPluralInfo();
|
| +
|
| +
|
| + /**
|
| + * Equal operator.
|
| + *
|
| + * @stable ICU 4.2
|
| + */
|
| + UBool operator==(const CurrencyPluralInfo& info) const;
|
| +
|
| +
|
| + /**
|
| + * Not equal operator
|
| + *
|
| + * @stable ICU 4.2
|
| + */
|
| + UBool operator!=(const CurrencyPluralInfo& info) const;
|
| +
|
| +
|
| + /**
|
| + * Clone
|
| + *
|
| + * @stable ICU 4.2
|
| + */
|
| + CurrencyPluralInfo* clone() const;
|
| +
|
| +
|
| + /**
|
| + * Gets plural rules of this locale, used for currency plural format
|
| + *
|
| + * @return plural rule
|
| + * @stable ICU 4.2
|
| + */
|
| + const PluralRules* getPluralRules() const;
|
| +
|
| + /**
|
| + * Given a plural count, gets currency plural pattern of this locale,
|
| + * used for currency plural format
|
| + *
|
| + * @param pluralCount currency plural count
|
| + * @param result output param to receive the pattern
|
| + * @return a currency plural pattern based on plural count
|
| + * @stable ICU 4.2
|
| + */
|
| + UnicodeString& getCurrencyPluralPattern(const UnicodeString& pluralCount,
|
| + UnicodeString& result) const;
|
| +
|
| + /**
|
| + * Get locale
|
| + *
|
| + * @return locale
|
| + * @stable ICU 4.2
|
| + */
|
| + const Locale& getLocale() const;
|
| +
|
| + /**
|
| + * Set plural rules.
|
| + * The plural rule is set when CurrencyPluralInfo
|
| + * instance is created.
|
| + * You can call this method to reset plural rules only if you want
|
| + * to modify the default plural rule of the locale.
|
| + *
|
| + * @param ruleDescription new plural rule description
|
| + * @param status output param set to success/failure code on exit
|
| + * @stable ICU 4.2
|
| + */
|
| + void setPluralRules(const UnicodeString& ruleDescription,
|
| + UErrorCode& status);
|
| +
|
| + /**
|
| + * Set currency plural pattern.
|
| + * The currency plural pattern is set when CurrencyPluralInfo
|
| + * instance is created.
|
| + * You can call this method to reset currency plural pattern only if
|
| + * you want to modify the default currency plural pattern of the locale.
|
| + *
|
| + * @param pluralCount the plural count for which the currency pattern will
|
| + * be overridden.
|
| + * @param pattern the new currency plural pattern
|
| + * @param status output param set to success/failure code on exit
|
| + * @stable ICU 4.2
|
| + */
|
| + void setCurrencyPluralPattern(const UnicodeString& pluralCount,
|
| + const UnicodeString& pattern,
|
| + UErrorCode& status);
|
| +
|
| + /**
|
| + * Set locale
|
| + *
|
| + * @param loc the new locale to set
|
| + * @param status output param set to success/failure code on exit
|
| + * @stable ICU 4.2
|
| + */
|
| + void setLocale(const Locale& loc, UErrorCode& status);
|
| +
|
| + /**
|
| + * ICU "poor man's RTTI", returns a UClassID for the actual class.
|
| + *
|
| + * @stable ICU 4.2
|
| + */
|
| + virtual UClassID getDynamicClassID() const;
|
| +
|
| + /**
|
| + * ICU "poor man's RTTI", returns a UClassID for this class.
|
| + *
|
| + * @stable ICU 4.2
|
| + */
|
| + static UClassID U_EXPORT2 getStaticClassID();
|
| +
|
| +private:
|
| + friend class DecimalFormat;
|
| +
|
| + void initialize(const Locale& loc, UErrorCode& status);
|
| +
|
| + void setupCurrencyPluralPattern(const Locale& loc, UErrorCode& status);
|
| +
|
| + /*
|
| + * delete hash table
|
| + *
|
| + * @param hTable hash table to be deleted
|
| + */
|
| + void deleteHash(Hashtable* hTable);
|
| +
|
| +
|
| + /*
|
| + * initialize hash table
|
| + *
|
| + * @param status output param set to success/failure code on exit
|
| + * @return hash table initialized
|
| + */
|
| + Hashtable* initHash(UErrorCode& status);
|
| +
|
| +
|
| +
|
| + /**
|
| + * copy hash table
|
| + *
|
| + * @param source the source to copy from
|
| + * @param target the target to copy to
|
| + */
|
| + void copyHash(const Hashtable* source, Hashtable* target, UErrorCode& status);
|
| +
|
| + //-------------------- private data member ---------------------
|
| + // map from plural count to currency plural pattern, for example
|
| + // a plural pattern defined in "CurrencyUnitPatterns" is
|
| + // "one{{0} {1}}", in which "one" is a plural count
|
| + // and "{0} {1}" is a currency plural pattern".
|
| + // The currency plural pattern saved in this mapping is the pattern
|
| + // defined in "CurrencyUnitPattern" by replacing
|
| + // {0} with the number format pattern,
|
| + // and {1} with 3 currency sign.
|
| + Hashtable* fPluralCountToCurrencyUnitPattern;
|
| +
|
| + /*
|
| + * The plural rule is used to format currency plural name,
|
| + * for example: "3.00 US Dollars".
|
| + * If there are 3 currency signs in the currency patttern,
|
| + * the 3 currency signs will be replaced by currency plural name.
|
| + */
|
| + PluralRules* fPluralRules;
|
| +
|
| + // locale
|
| + Locale* fLocale;
|
| +};
|
| +
|
| +
|
| +inline UBool
|
| +CurrencyPluralInfo::operator!=(const CurrencyPluralInfo& info) const { return !operator==(info); }
|
| +
|
| +U_NAMESPACE_END
|
| +
|
| +#endif /* #if !UCONFIG_NO_FORMATTING */
|
| +
|
| +#endif // _CURRPINFO
|
| +//eof
|
|
|
| Property changes on: icu46/source/i18n/unicode/currpinf.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|