Skip to main content
This revision made February 28, 2013 14:02, by Anatole


JSR 354 - Currency and Money


Introduction

This JSR focuses on defining interfaces and classes to be used for currencies and monetary amounts. Generally the following areas are defined:

  • Core This area defines the classes representing currencies and monetary amounts.
  • Conversion This area deals with exchange rates between currencies and provides an API/SPI to perform conversion of monetary amounts from one currency to another.
  • Format This area defines APIs/SPIs for formatting and parsing of currencies and monetary amounts, providing support for complex usage scenarios.
  • Extensions This area defines additional functionas and utilities that are registered/accessible using the Java Money extensions SPI.

It is planned the the JSR will support both SE and ME environments. The reference implementation probably also will include further support for EE/CDI.

Scope and Use Cases

Generally the scope of the JSR is targeting all general application types, e.g.

  • eCommerce
  • Banking and finance
  • Investment
  • Insurance and Pension
  • Mobile and Embedded Payment
  • etc.

Summarizing the scope can be defined as follows:

  • Provide abstractions for currency and money suitable for all target applications
  • Enhance, renew Currency, add support for non-ISO currencies
  • Support complex calculation rules including calculation precision and display precision
  • Support for regional rounding rules
  • Basic support for foreign exchange, extendable for more complex usage scenarios
  • A plain text representation of Money
  • Printing/Parsing to String
  • Support for pluralization
  • Provide APIs for historic access of currencies and exchange rates.
  • Define a flexible query API tu support complex usage scenarios for exchange rates and currencies
  • Storing a value in multiple currencies (a single value type that is effectively a map of currency to amount, where the amounts are all notionally the same by some form of currency conversion)
  • Large exchange rate system (as in a system suitable for trading, such as bid/ask)

Nevertheless there are some restrictions (features that are not in scope):

Additionally the following features have been considered as optional:

  • Providing static calculation utilities to those developers not using the JSR Money class (eg. those using an unwrapped double/long direcly).

The use cases targeted can be found in more detail here.

Also refer to this draft document here.

Further Information and Source Code Access

Difference compared to previous revision
Additionally the following features have been considered as '''optional''': * Providing static calculation utilities to those developers not using the JSR Money class (eg. those using an unwrapped double/long direcly). The use cases targeted can be found in more detail [[usecases|here]].Also refer to this draft document here. ==Further Information and Source Code Access * Current Build Status and Build Information * Overall [[DesignPrinciples|Design Principles]] * Discussions about [[Precision]] and other [[implementation|Implementation notes]]
 
 
Close
loading
Please Confirm
Close