Class Currency

  • All Implemented Interfaces:
    java.io.Serializable

    public class Currency
    extends javax.measure.unit.DerivedUnit<Money>

    This class represents a currency Unit. Currencies are a special form of DerivedUnit, conversions between currencies is possible if their respective exchange rates have been set and the conversion factor can be changed dynamically.

    Quantities stated in Currency are usually instances of Money.

    By default, the label associated to a currency is its ISO-4217 code (see the ISO 4217 maintenance agency for a table of currency codes). An application may change this default using the UnitFormat.label(String) method. For example:[code] UnitFormat.getStandardInstance().label(Currency.EUR, "€"); UnitFormat.getStandardInstance().label(Currency.GBP, "£"); UnitFormat.getStandardInstance().label(Currency.JPY, "¥"); UnitFormat.getStandardInstance().label(Currency.USD, "$"); [/code]

    Version:
    3.0, February 13, 2006
    Author:
    Jean-Marie Dautelle
    See Also:
    setExchangeRate(double), Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Currency AUD
      The Australian Dollar currency unit.
      static Currency CAD
      The Canadian Dollar currency unit.
      static Currency CNY
      The China Yan currency.
      static Currency EUR
      The Euro currency.
      static Currency GBP
      The British Pound currency.
      static Currency JPY
      The Japanese Yen currency.
      static Currency KRW
      The Korean Republic Won currency.
      static Currency TWD
      The Taiwanese dollar currency.
      static Currency USD
      The United State dollar currency.
      • Fields inherited from class javax.measure.unit.Unit

        ONE
    • Constructor Summary

      Constructors 
      Constructor Description
      Currency​(java.lang.String code)
      Creates the currency unit for the given currency code.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object obj)
      Indicates if the specified unit can be considered equals to the one specified.
      java.lang.String getCode()
      Returns the currency code for this currency.
      int getDefaultFractionDigits()
      Returns the default number of fraction digits used with this currency unit.
      double getExchangeRate()
      Returns the exchange rate for this Currency.
      static Currency getReferenceCurrency()
      Returns the currency used as reference when setting the exchange rate.
      javax.measure.unit.Unit<? super Money> getStandardUnit()
      Returns the base unit, alternate unit or product of base units and alternate units this unit is derived from.
      int hashCode()
      Returns the hash code for this unit.
      void setExchangeRate​(double refAmount)
      Sets the exchange rate of this Currency relatively to the reference currency.
      static void setReferenceCurrency​(Currency currency)
      Sets the reference currency (context-local).
      javax.measure.converter.UnitConverter toStandardUnit()
      Returns the converter from this unit to its system unit.
      • Methods inherited from class javax.measure.unit.Unit

        alternate, asType, compound, divide, divide, divide, getConverterTo, getDimension, inverse, isCompatible, isStandardUnit, plus, pow, root, times, times, times, toString, transform, valueOf
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • AUD

        public static final Currency AUD
        The Australian Dollar currency unit.
      • CAD

        public static final Currency CAD
        The Canadian Dollar currency unit.
      • CNY

        public static final Currency CNY
        The China Yan currency.
      • EUR

        public static final Currency EUR
        The Euro currency.
      • GBP

        public static final Currency GBP
        The British Pound currency.
      • JPY

        public static final Currency JPY
        The Japanese Yen currency.
      • KRW

        public static final Currency KRW
        The Korean Republic Won currency.
      • TWD

        public static final Currency TWD
        The Taiwanese dollar currency.
      • USD

        public static final Currency USD
        The United State dollar currency.
    • Constructor Detail

      • Currency

        public Currency​(java.lang.String code)
        Creates the currency unit for the given currency code. See the ISO 4217 maintenance agency for more information, including a table of currency codes.
        Parameters:
        code - the ISO-4217 code of the currency (e.g. "EUR", "USD", "JPY").
        Throws:
        java.lang.IllegalArgumentException - if the specified code is not an ISO-4217 code.
    • Method Detail

      • getCode

        public java.lang.String getCode()
        Returns the currency code for this currency.
        Returns:
        the ISO-4217 code of the currency (e.g. "EUR", "USD", "JPY").
      • getDefaultFractionDigits

        public int getDefaultFractionDigits()
        Returns the default number of fraction digits used with this currency unit. For example, the default number of fraction digits for the EUR is 2, while for the JPY (Yen) it's 0. This method can be overriden for custom currencies returning values different from 2.
        Returns:
        the default number of fraction digits for this currency.
      • setReferenceCurrency

        public static void setReferenceCurrency​(Currency currency)
        Sets the reference currency (context-local). Changing the reference currency clears all the exchange rates previously set.
        Parameters:
        currency - the new reference currency.
        See Also:
        LocalContext
      • getReferenceCurrency

        public static Currency getReferenceCurrency()
        Returns the currency used as reference when setting the exchange rate. By default, the reference currency is the currency for the default country locale.
        Returns:
        the reference currency.
        See Also:
        setExchangeRate(double)
      • setExchangeRate

        public void setExchangeRate​(double refAmount)
        Sets the exchange rate of this Currency relatively to the reference currency. Setting the exchange rate allows for conversion between Money stated in different currencies. For example:
             Currency.setReferenceCurrency(Currency.USD);
             Currency.EUR.setExchangeRate(1.17); // 1.0 € = 1.17 $
         
        Parameters:
        refAmount - the amount stated in the getReferenceCurrency() equals to one unit of this Currency.
        See Also:
        getReferenceCurrency()
      • equals

        public boolean equals​(java.lang.Object obj)
        Description copied from class: javax.measure.unit.Unit
        Indicates if the specified unit can be considered equals to the one specified.
        Specified by:
        equals in class javax.measure.unit.Unit<Money>
        Parameters:
        obj - the object to compare to.
        Returns:
        true if this unit is considered equal to that unit; false otherwise.
      • hashCode

        public int hashCode()
        Description copied from class: javax.measure.unit.Unit
        Returns the hash code for this unit.
        Specified by:
        hashCode in class javax.measure.unit.Unit<Money>
        Returns:
        this unit hashcode value.
      • getStandardUnit

        public javax.measure.unit.Unit<? super MoneygetStandardUnit()
        Description copied from class: javax.measure.unit.Unit
        Returns the base unit, alternate unit or product of base units and alternate units this unit is derived from. The standard unit identifies the "type" of quantity for which this unit is employed. For example:[code] boolean isAngularVelocity(Unit u) { return u.getStandardUnit().equals(RADIAN.divide(SECOND)); } assert(REVOLUTION.divide(MINUTE).isAngularVelocity()); [/code]

        Note: Having the same system unit is not sufficient to ensure that a converter exists between the two units (e.g. °C/m and K/m).

        Specified by:
        getStandardUnit in class javax.measure.unit.Unit<Money>
        Returns:
        the system unit this unit is derived from.
      • toStandardUnit

        public javax.measure.converter.UnitConverter toStandardUnit()
        Description copied from class: javax.measure.unit.Unit
        Returns the converter from this unit to its system unit.
        Specified by:
        toStandardUnit in class javax.measure.unit.Unit<Money>
        Returns:
        this.getConverterTo(this.getSystemUnit())