com.ibm.icu.util
Class Currency

java.lang.Object
  extended by com.ibm.icu.util.MeasureUnit
      extended by com.ibm.icu.util.Currency
All Implemented Interfaces:
Serializable

public class Currency
extends MeasureUnit
implements Serializable

A class encapsulating a currency, as defined by ISO 4217. A Currency object can be created given a Locale or given an ISO 4217 code. Once created, the Currency object can return various data necessary to its proper display:

The DecimalFormat class uses these data to display currencies.

Note: This class deliberately resembles java.util.Currency but it has a completely independent implementation, and adds features not present in the JDK.

Author:
Alan Liu
See Also:
Serialized Form

Field Summary
static int LONG_NAME
          Selector for ucurr_getName indicating the long name for a currency, such as "US Dollar" for USD.
static int SYMBOL_NAME
          Selector for getName() indicating a symbolic name for a currency, such as "$" for USD.
 
Method Summary
 boolean equals(Object rhs)
          Return true if rhs is a Currency instance, is non-null, and has the same currency code.
static Locale[] getAvailableLocales()
          Return an array of the locales for which a currency is defined.
static ULocale[] getAvailableULocales()
          Return an array of the ulocales for which a currency is defined.
 String getCurrencyCode()
          Returns the ISO 4217 3-letter code for this currency object.
 int getDefaultFractionDigits()
          Returns the number of the number of fraction digits that should be displayed for this currency.
static Currency getInstance(Locale locale)
          Returns a currency object for the default currency in the given locale.
static Currency getInstance(String theISOCode)
          Returns a currency object given an ISO 4217 3-letter code.
static Currency getInstance(ULocale locale)
          Deprecated. This is a draft API and might change in a future release of ICU.
 ULocale getLocale(ULocale.Type type)
          Deprecated. This is a draft API and might change in a future release of ICU.
 String getName(Locale locale, int nameStyle, boolean[] isChoiceFormat)
          Deprecated. This is a draft API and might change in a future release of ICU.
 String getName(ULocale locale, int nameStyle, boolean[] isChoiceFormat)
          Deprecated. This is a draft API and might change in a future release of ICU.
 double getRoundingIncrement()
          Returns the rounding increment for this currency, or 0.0 if no rounding is done by this currency.
 int hashCode()
          Return a hashcode for this currency.
static String parse(ULocale locale, String text, ParsePosition pos)
          Attempt to parse the given string as a currency, either as a display name in the given locale, or as a 3-letter ISO 4217 code.
static Object registerInstance(Currency currency, ULocale locale)
          Deprecated. This is a draft API and might change in a future release of ICU.
 String toString()
          Returns the ISO 4217 code for this currency.
static boolean unregister(Object registryKey)
          Unregister the currency associated with this key (obtained from registerInstance).
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

SYMBOL_NAME

public static final int SYMBOL_NAME
Selector for getName() indicating a symbolic name for a currency, such as "$" for USD.

See Also:
Constant Field Values

LONG_NAME

public static final int LONG_NAME
Selector for ucurr_getName indicating the long name for a currency, such as "US Dollar" for USD.

See Also:
Constant Field Values
Method Detail

getInstance

public static Currency getInstance(Locale locale)
Returns a currency object for the default currency in the given locale.

Parameters:
locale - the locale
Returns:
the currency object for this locale

getInstance

public static Currency getInstance(ULocale locale)
Deprecated. This is a draft API and might change in a future release of ICU.

Returns a currency object for the default currency in the given locale.


getInstance

public static Currency getInstance(String theISOCode)
Returns a currency object given an ISO 4217 3-letter code.

Parameters:
theISOCode - the iso code
Returns:
the currency for this iso code

registerInstance

public static Object registerInstance(Currency currency,
                                      ULocale locale)
Deprecated. This is a draft API and might change in a future release of ICU.

Registers a new currency for the provided locale. The returned object is a key that can be used to unregister this currency object.

Parameters:
currency - the currency to register
locale - the ulocale under which to register the currency
Returns:
a registry key that can be used to unregister this currency
See Also:
unregister(java.lang.Object)

unregister

public static boolean unregister(Object registryKey)
Unregister the currency associated with this key (obtained from registerInstance).

Parameters:
registryKey - the registry key returned from registerInstance
See Also:
registerInstance(com.ibm.icu.util.Currency, com.ibm.icu.util.ULocale)

getAvailableLocales

public static Locale[] getAvailableLocales()
Return an array of the locales for which a currency is defined.

Returns:
an array of the available locales

getAvailableULocales

public static ULocale[] getAvailableULocales()
Return an array of the ulocales for which a currency is defined.

Returns:
an array of the available ulocales

hashCode

public int hashCode()
Return a hashcode for this currency.

Overrides:
hashCode in class Object

equals

public boolean equals(Object rhs)
Return true if rhs is a Currency instance, is non-null, and has the same currency code.

Overrides:
equals in class Object

getCurrencyCode

public String getCurrencyCode()
Returns the ISO 4217 3-letter code for this currency object.


getName

public String getName(Locale locale,
                      int nameStyle,
                      boolean[] isChoiceFormat)
Deprecated. This is a draft API and might change in a future release of ICU.

Returns the display name for the given currency in the given locale. For example, the display name for the USD currency object in the en_US locale is "$".

Parameters:
locale - locale in which to display currency
nameStyle - selector for which kind of name to return
isChoiceFormat - fill-in; isChoiceFormat[0] is set to true if the returned value is a ChoiceFormat pattern; otherwise it is set to false
Returns:
display string for this currency. If the resource data contains no entry for this currency, then the ISO 4217 code is returned. If isChoiceFormat[0] is true, then the result is a ChoiceFormat pattern. Otherwise it is a static string.

getName

public String getName(ULocale locale,
                      int nameStyle,
                      boolean[] isChoiceFormat)
Deprecated. This is a draft API and might change in a future release of ICU.

Returns the display name for the given currency in the given locale. For example, the display name for the USD currency object in the en_US locale is "$".

Parameters:
locale - locale in which to display currency
nameStyle - selector for which kind of name to return
isChoiceFormat - fill-in; isChoiceFormat[0] is set to true if the returned value is a ChoiceFormat pattern; otherwise it is set to false
Returns:
display string for this currency. If the resource data contains no entry for this currency, then the ISO 4217 code is returned. If isChoiceFormat[0] is true, then the result is a ChoiceFormat pattern. Otherwise it is a static string.

parse

public static String parse(ULocale locale,
                           String text,
                           ParsePosition pos)
Attempt to parse the given string as a currency, either as a display name in the given locale, or as a 3-letter ISO 4217 code. If multiple display names match, then the longest one is selected. If both a display name and a 3-letter ISO code match, then the display name is preferred, unless it's length is less than 3.

Parameters:
locale - the locale of the display names to match
text - the text to parse
pos - input-output position; on input, the position within text to match; must have 0 <= pos.getIndex() < text.length(); on output, the position after the last matched character. If the parse fails, the position in unchanged upon output.
Returns:
the ISO 4217 code, as a string, of the best match, or null if there is no match

getDefaultFractionDigits

public int getDefaultFractionDigits()
Returns the number of the number of fraction digits that should be displayed for this currency.

Returns:
a non-negative number of fraction digits to be displayed

getRoundingIncrement

public double getRoundingIncrement()
Returns the rounding increment for this currency, or 0.0 if no rounding is done by this currency.

Returns:
the non-negative rounding increment, or 0.0 if none

toString

public String toString()
Returns the ISO 4217 code for this currency.

Overrides:
toString in class Object

getLocale

public final ULocale getLocale(ULocale.Type type)
Deprecated. This is a draft API and might change in a future release of ICU.

Return the locale that was used to create this object, or null. This may may differ from the locale requested at the time of this object's creation. For example, if an object is created for locale en_US_CALIFORNIA, the actual data may be drawn from en (the actual locale), and en_US may be the most specific locale that exists (the valid locale).

Note: This method will be obsoleted. The implementation is no longer locale-specific and so there is no longer a valid or actual locale associated with the Currency object. Until it is removed, this method will return the root locale.

Parameters:
type - type of information requested, either ULocale.VALID_LOCALE or ULocale.ACTUAL_LOCALE.
Returns:
the information specified by type, or null if this object was not constructed from locale data.
See Also:
ULocale, ULocale.VALID_LOCALE, ULocale.ACTUAL_LOCALE


Copyright (c) 2004 IBM Corporation and others.