Package tech.units.indriya.spi
Class UnitNameProvider
- java.lang.Object
-
- java.util.spi.LocaleServiceProvider
-
- tech.units.indriya.spi.UnitNameProvider
-
public abstract class UnitNameProvider extends LocaleServiceProvider
An abstract class for service providers that provide localized unit symbols and display names for theunitclass. Note that unit symbols are considered names when determining behaviors described in theLocaleServiceProviderspecification.- Since:
- 2.0.3
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedUnitNameProvider()Sole constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description StringgetDisplayName(String unitCode, Locale locale)Returns a name for the unit that is appropriate for display to the user.abstract StringgetSymbol(String unitCode, Locale locale)Gets the symbol of the given unit for the specified locale.-
Methods inherited from class java.util.spi.LocaleServiceProvider
getAvailableLocales, isSupportedLocale
-
-
-
-
Constructor Detail
-
UnitNameProvider
protected UnitNameProvider()
Sole constructor. (For invocation by subclass constructors, typically implicit.)
-
-
Method Detail
-
getSymbol
public abstract String getSymbol(String unitCode, Locale locale)
Gets the symbol of the given unit for the specified locale. For example, for "m" (metre), the symbol is "m" if the specified locale is the US, while for other locales it may be "M". If no symbol can be determined, null should be returned.- Parameters:
unitCode- the unit 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 unit for the specified locale, or null if the symbol is not available for the locale
- Throws:
NullPointerException- ifunitCodeorlocaleis nullIllegalArgumentException- ifunitCodeis not in the form of three upper-case letters, orlocaleisn't one of the locales returned fromgetAvailableLocales().- See Also:
javax.measure.Unit#getSymbol(java.util.Locale)
-
getDisplayName
public String getDisplayName(String unitCode, Locale locale)
Returns a name for the unit that is appropriate for display to the user. The default implementation returns null.- Parameters:
unitCode- the ISO 4217 unit, which consists of three upper-case letters between 'A' (U+0041) and 'Z' (U+005A)locale- the desired locale- Returns:
- the name for the unit that is appropriate for display to the user, or null if the name is not available for the locale
- Throws:
IllegalArgumentException- ifunitCodeis not in the form of three upper-case letters, orlocaleisn't one of the locales returned fromgetAvailableLocales().NullPointerException- ifunitCodeorlocaleisnull
-
-