The CLDR data has information about usage, such as which countries a currency is valid in during what period. It is really not as simple as an association of country to currency, and it would be useful to have an API that was not only customizable, but capable of returning the right kinds of info.<br>
<br>See:<br><a href="http://unicode.org/cldr/data/common/supplemental/supplementalData.xml">http://unicode.org/cldr/data/common/supplemental/supplementalData.xml</a><br><br>&lt;currencyData&gt;<br>  &lt;fractions&gt; // for currency decimals<br>
others, eg:<br>&lt;region iso3166=&quot;AO&quot;&gt;<br>  &lt;currency iso4217=&quot;AOA&quot; from=&quot;1999-12-13&quot;/&gt;<br>  &lt;currency iso4217=&quot;AOR&quot; from=&quot;1995-07-01&quot; to=&quot;2000-02-01&quot;/&gt;<br>
  &lt;currency iso4217=&quot;AON&quot; from=&quot;1990-09-25&quot; to=&quot;2000-02-01&quot;/&gt;<br>  &lt;currency iso4217=&quot;AOK&quot; from=&quot;1977-01-08&quot; to=&quot;1991-03-01&quot;/&gt;<br>&lt;/region&gt;<br>
<br>If a currency is not a tender, it is marked, eg:<br><br>&lt;region iso3166=&quot;ZZ&quot;&gt;<br>  &lt;currency iso4217=&quot;XAG&quot; tender=&quot;false&quot;/&gt;<br><br clear="all">Mark<br>
<br><br><div class="gmail_quote">On Mon, Aug 24, 2009 at 13:53, Stephen Colebourne <span dir="ltr">&lt;<a href="mailto:scolebourne@joda.org">scolebourne@joda.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">Naoto Sato wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Stephen Colebourne wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Unfortunately, not all currencies are associated with countries. Some,<br>
like XAG for &#39;silver&#39;, XDR for &#39;IMF drawing rights&#39; or XXX for &#39;no<br>
currency&#39; have no matching country. Thus, this file format is unable<br>
to represent user overrides to those countries.<br>
</blockquote>
<br>
You meant &quot;those currencies&quot; here, right?  If that&#39;s the case, yes it is true.  We might need these currencies be updated in this properties file by enhancing the file format, however, the frequency for those currencies being updated is much less than the ones associated with particular countries.<br>

</blockquote>
<br></div>
Yes, thats what I meant. For the new Joda-Money I used this file format:<br>
EUR,978,2,IEFRESPTFIBENLLUDEATITMTSKSIGRCYADMCMESMVA<br>
FJD,242,2,FJ<br>
FKP,238,2,FK<br>
GBP,826,2,GBIMJEGGGSIO<br>
XAG,961,-1,<br>
<br>
The last column are the two letter country codes that the currency is applicable for (blank means pseduo curency).<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Right now, there is no mechanism to update the ISO-3166 country codes in the JRE.  So even though the format itself is capable of accepting any (new or old) country codes, it does not work for new ISO-3166 country codes.<br>

</blockquote>
<br></div>
Thats unfortunate.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

I believe that we should also consider if Currency should implement<br>
Comparable, sorting alphabetically on the currency code. While there<br>
are many possible sort orders, having this as the default one makes a<br>
lot of sense.<br>
</blockquote>
<br>
Having the class Comparable makes sense to me.  Although the default may be arguable (ISO-3166 code has numeric values independent of the three letter codes).<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Finally, I&#39;d like to see a method isPsuedoCurrency() added. This would<br>
return a boolean indicating if the currency is &#39;real&#39; or not.<br>
</blockquote>
<br>
This one is also nice to have.<br>
</blockquote>
<br></div>
I also reckon that a method to get the country codes that the currency is valid for would be useful:<br>
<br>
Set&lt;String&gt; getApplicableCountryCodes()<br><font color="#888888">
<br>
Stephen<br>
</font></blockquote></div><br>