Module java.money
Package javax.money

Interface CurrencyUnit

All Superinterfaces:
java.lang.Comparable<CurrencyUnit>

public interface CurrencyUnit
extends java.lang.Comparable<CurrencyUnit>
A unit of currency.

This interface represents a unit of currency such as the British Pound, Euro, US Dollar, Bitcoin or other. It provides interoperability between different implementations.

Currencies can be distinguished by separate getCurrencyCode() codes, similar to Currency.

Implementation specification

Implementation of this class
  • are required to implement equals/hashCode considering the concrete implementation type and currency code.
  • are required to be thread-safe
  • are required to be immutable
  • are required to be comparable
  • should be serializable (on platforms providing serialization).
Version:
1.0
Author:
Werner Keil, Stephen Colebourne, Anatole Tresch
See Also:
Wikipedia: Currency
  • Method Summary

    Modifier and Type Method Description
    CurrencyContext getContext()
    Returns the CurrencyContext of a currency.
    java.lang.String getCurrencyCode()
    Gets the unique currency code, the effective code depends on the currency.
    int getDefaultFractionDigits()
    Gets the number of fractional digits typically used by this currency.
    int getNumericCode()
    Gets a numeric currency code.

    Methods inherited from interface java.lang.Comparable

    compareTo
  • Method Details

    • getCurrencyCode

      java.lang.String getCurrencyCode()
      Gets the unique currency code, the effective code depends on the currency.

      Since each currency is identified by this code, the currency code is required to be defined for every CurrencyUnit and not null or empty.

      For ISO codes the 3-letter ISO code should be returned. For non ISO currencies no constraints are defined.

      Returns:
      the currency code, never null. For ISO-4217 this this will be the three letter ISO-4217 code. However, alternate currencies can have different codes. Also there is no constraint about the formatting of alternate codes, despite the fact that the currency codes must be unique.
    • getNumericCode

      int getNumericCode()
      Gets a numeric currency code. within the ISO-4217 name space, this equals to the ISO numeric code. In other currency name spaces this number may be different, or even undefined (-1).

      The numeric code is an optional alternative to the standard currency code. If defined, the numeric code is required to be unique.

      This method matches the API of Currency.

      Returns:
      the numeric currency code
    • getDefaultFractionDigits

      int getDefaultFractionDigits()
      Gets the number of fractional digits typically used by this currency.

      Different currencies have different numbers of fractional digits by default. For example, 'GBP' has 2 fractional digits, but 'JPY' has zero. virtual currencies or those with no applicable fractional are indicated by -1.

      This method matches the API of Currency.

      Returns:
      the fractional digits, from 0 to 9 (normally 0, 2 or 3), or 0 for pseudo-currencies.
    • getContext

      CurrencyContext getContext()
      Returns the CurrencyContext of a currency. This context contains additional information about the type and capabilities of a CurrencyUnit, e.g. its provider and more.
      Returns:
      the currency's context, never null.