Module java.base
Package java.util.spi

# Class CurrencyNameProvider

java.lang.Object
java.util.spi.LocaleServiceProvider
java.util.spi.CurrencyNameProvider

public abstract class CurrencyNameProvider extends LocaleServiceProvider
An abstract class for service providers that provide localized currency symbols and display names for the `Currency` class. Note that currency symbols are considered names when determining behaviors described in the `LocaleServiceProvider` specification.

Since:
  1.6

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`CurrencyNameProvider()`
Sole constructor.

## Method Summary

Modifier and Type
Method
Description
`String`
`getDisplayName(String currencyCode, Locale locale)`
Returns a name for the currency that is appropriate for display to the user.
`abstract String`
`getSymbol(String currencyCode, Locale locale)`
Gets the symbol of the given currency code for the specified locale.

### Methods declared in class java.util.spi.LocaleServiceProvider

`getAvailableLocales, isSupportedLocale`

### Methods declared in class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### CurrencyNameProvider

protected CurrencyNameProvider()
Sole constructor. (For invocation by subclass constructors, typically implicit.)

## Method Details

### getSymbol

public abstract String getSymbol(String currencyCode, Locale locale)
Gets the symbol of the given currency code for the specified locale. For example, for "USD" (US Dollar), the symbol is "$" if the specified locale is the US, while for other locales it may be "US$". If no symbol can be determined, null should be returned.

Parameters:
  `currencyCode` - the ISO 4217 currency code, which consists of three upper-case letters between 'A' (U+0041) and 'Z' (U+005A)
  `locale` - the desired locale
Returns:
  the symbol of the given currency code for the specified locale, or null if the symbol is not available for the locale
Throws:
  `NullPointerException` - if `currencyCode` or `locale` is null
  `IllegalArgumentException` - if `currencyCode` is not in the form of three upper-case letters, or `locale` isn't one of the locales returned from `getAvailableLocales()`.
See Also:
  - `Currency.getSymbol(java.util.Locale)`

### getDisplayName

public String getDisplayName(String currencyCode, Locale locale)
Returns a name for the currency that is appropriate for display to the user. The default implementation returns null.

Parameters:
  `currencyCode` - the ISO 4217 currency code, which consists of three upper-case letters between 'A' (U+0041) and 'Z' (U+005A)
  `locale` - the desired locale
Returns:
  the name for the currency that is appropriate for display to the user, or null if the name is not available for the locale
Throws:
  `IllegalArgumentException` - if `currencyCode` is not in the form of three upper-case letters, or `locale` isn't one of the locales returned from `getAvailableLocales()`.
  `NullPointerException` - if `currencyCode` or `locale` is `null`
Since:
  1.7