*******************************************************************************
* Copyright (C) 2012, International Business Machines Corporation and         *
* others. All Rights Reserved.                                                *
*******************************************************************************

[Overview]

This directory contains a tool used for maintaining ICU's ISO 4217 currency
code mapping data. ICU uses a resource generated by this tool for mapping
ISO 4217 currency alpha codes to numeric codes.


[Files]

package com.ibm.icu.dev.tool.currency

Main.java - The tool's entry point
NumericCodeData.java - The mapping data used by ICU
CurrencyDataParser.java - ISO 4217 XML data parser
CurrencyDataEntry.java - ISO 4217 XML data entry


[Details]

com.ibm.icu.dev.tool.NumericCodeData has String[][] CODE_MAP_DATA.
This array represents mappings between ISO 4217 alpha codes and
numeric codes. ICU's resource bundle currencyNumericCodes is generated
from the table.

ISO 4217 maintenance agency - SIX Interbank Clearing distributes
ISO 4217 code data in XML format. These files are found in
http://www.currency-iso.org/iso_index/iso_tables.htm. There are two
files that we're interested in.

 - http://www.currency-iso.org/dl_iso_table_a1.xml
 - http://www.currency-iso.org/dl_iso_tables_a3.xml

Table A.1 contains current currencies and funds and Table A.3 contains
historic denominations.

The tool supports 3 commands - check / print / build.

1) check

This command compares the hardcoded mapping data in NumericCodeData.java
with the ISO 4217 XML data files side by side and check differences.

2) print

This command prints out body of String[][] CODE_MAP_DATA from the ISO
4217 XML data files.

3) build

This command writes out the hardcoded mapping data in NumericCodeData.java
in ICU resource bundle source format - currencyNumericCodes.txt.


[Release Tasks]

For each ICU release, we should check if the mapping data is up to date.

Prerequisites: Java 6+, ant

First, run the ant target "check". This ant target download XML files from
the SIX Interbank Clearing site and invoke the tool command "check".

When the target successfully finished, you should see the log like below:
----------------------------------------------------------------------------
C:\devtls\trunk\currency>ant check
Buildfile: C:\devtls\trunk\currency\build.xml

classes:

_checkLocalXml:

_localXml:

_downloadXml:
     [echo] Downloading ISO 4217 XML data files
      [get] Getting: http://www.currency-iso.org/dl_iso_table_a1.xml
      [get] To: C:\devtls\trunk\currency\out\xml\dl_iso_table_a1.xml
      [get] Getting: http://www.currency-iso.org/dl_iso_tables_a3.xml
      [get] To: C:\devtls\trunk\currency\out\xml\dl_iso_tables_a3.xml

xmlData:

check:
     [java] [OK] ICU data is synchronized with the reference data

BUILD SUCCESSFUL
Total time: 2 seconds
----------------------------------------------------------------------------
In this case, our data is synchronized with the latest XML data and you're done.


If the data is out of sync, you should see message like below:
----------------------------------------------------------------------------
check:
     [java] Missing alpha code in ICU map [ZWR]
     [java] Codes not found in the reference data: ZZZ

BUILD FAILED
C:\devtls\trunk\currency\build.xml:54: Java returned: 1
----------------------------------------------------------------------------
In this case, you have to update the hardcoded data in NumericCodeData.
You can either edit the table in NumericCodeData manually, or run the tool
command "print" and copy the output and paste it to the table.

Once you make sure "ant check" returns no errors, run "ant build". This
target generate out/res/currencyNumericCodes.txt. The file should go to
<icu4c>/source/data/misc directory.

Note: The default ant target does both operation. Although it creates the
ICU resource file, you do not need to replace the one in ICU4C package with
the newly generated one if "check" successfully finished.

