// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
/*
 *******************************************************************************
 * Copyright (C) 2012-2013, International Business Machines Corporation and    *
 * others. All Rights Reserved.                                                *
 *******************************************************************************
 */
package com.ibm.icu.dev.tool.currency;

import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.Collections;
import java.util.GregorianCalendar;
import java.util.Map.Entry;
import java.util.SortedMap;
import java.util.TimeZone;
import java.util.TreeMap;

/**
 * Container of ISO 4217 alpha3 - numeric3 code mapping data
 */
public class NumericCodeData {
    private SortedMap<String, String> _codeMap;

    private NumericCodeData(SortedMap<String, String> codeMap) {
        _codeMap = codeMap;
    }

    public static NumericCodeData getDefaultInstance() {
        SortedMap<String, String> map = new TreeMap<String, String>();
        for (String[] dataEntry : CODE_MAP_DATA) {
            map.put(dataEntry[0], dataEntry[1]);
        }
        return new NumericCodeData(map);
    }

    public static NumericCodeData createInstance(Collection<CurrencyDataEntry> dataEntries) {
        SortedMap<String, String> map = new TreeMap<String, String>();
        for (CurrencyDataEntry dataEntry : dataEntries) {
            String alphaCode = dataEntry.alphabeticCode();
            Integer numCode = dataEntry.numericCode();
            if (alphaCode == null || numCode == null) {
                continue;
            }
            map.put(alphaCode, String.format("%03d", numCode));
        }
        return new NumericCodeData(map);
    }

    public NumericCodeData merge(NumericCodeData anotherData) {
        SortedMap<String, String> codeMap = anotherData.getAlphaNumericCodeMap();
        for (Entry<String, String> codeMapEntry : codeMap.entrySet()) {
            String alphaCode = codeMapEntry.getKey();
            String numCode = codeMapEntry.getValue();
            if (!_codeMap.containsKey(alphaCode)) {
                _codeMap.put(alphaCode, numCode);
            } else {
                String existingValue = _codeMap.get(alphaCode);
                if (!existingValue.equals(numCode)) {
                    throw new RuntimeException("Duplicated definition for " + alphaCode + ": value=" + existingValue + "/another value=" + numCode);
                }
            }
        }
        return this;
    }

    public SortedMap<String, String> getAlphaNumericCodeMap() {
        return Collections.unmodifiableSortedMap(_codeMap);
    }

    public void printArray() {
        for (Entry<String, String> entry : getAlphaNumericCodeMap().entrySet()) {
            System.out.println("        {\"" + entry.getKey() + "\", \"" + entry.getValue() + "\"},");
        }
    }

    public void writeResource(OutputStreamWriter osw, String resName) throws IOException {
        GregorianCalendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT"));

        PrintWriter pw = new PrintWriter(osw, true);

        // Header
        pw.println("//---------------------------------------------------------");
        pw.println("// Copyright (C) 2016 and later: Unicode, Inc. and others.");
        pw.println("// License & terms of use: http://www.unicode.org/copyright.html");
        pw.println("//---------------------------------------------------------");
        pw.println("// Copyright (C) 2013, International Business Machines");
        pw.println("// Corporation and others.  All Rights Reserved.");
        pw.println("//---------------------------------------------------------");
        pw.println("// Build tool: com.ibm.icu.dev.tool.currency.NumericCodeData");
        pw.println(String.format("// Build date: %1$tFT%1$tTZ", cal));
        pw.println("//---------------------------------------------------------");
        pw.println("// >> !!! >>   THIS IS A MACHINE-GENERATED FILE   << !!! <<");
        pw.println("// >> !!! >>>            DO NOT EDIT             <<< !!! <<");
        pw.println("//---------------------------------------------------------");
        pw.println("");

        // Resource root
        pw.println(resName + ":table(nofallback){");

        // Map data
        pw.println("    codeMap{");

        for (Entry<String, String> mapEntry : _codeMap.entrySet()) {
            String alphaCode = mapEntry.getKey();
            int numericCodeVal = Integer.parseInt(mapEntry.getValue());
            pw.println(String.format("        %1$s:int{%2$d}", alphaCode, numericCodeVal));
        }

        pw.println("    }");

        pw.println("}");
    }

    private static final String[][] CODE_MAP_DATA = {
        {"ADP", "020"},
        {"AED", "784"},
        {"AFA", "004"},
        {"AFN", "971"},
        {"ALL", "008"},
        {"AMD", "051"},
        {"ANG", "532"},
        {"AOA", "973"},
        {"AON", "024"},
        {"AOR", "982"},
        {"ARA", "032"},
        {"ARP", "032"},
        {"ARS", "032"},
        {"ATS", "040"},
        {"AUD", "036"},
        {"AWG", "533"},
        {"AYM", "945"},
        {"AZM", "031"},
        {"AZN", "944"},
        {"BAD", "070"},
        {"BAM", "977"},
        {"BBD", "052"},
        {"BDT", "050"},
        {"BEC", "993"},
        {"BEF", "056"},
        {"BEL", "992"},
        {"BGL", "100"},
        {"BGN", "975"},
        {"BHD", "048"},
        {"BIF", "108"},
        {"BMD", "060"},
        {"BND", "096"},
        {"BOB", "068"},
        {"BOV", "984"},
        {"BRC", "076"},
        {"BRE", "076"},
        {"BRL", "986"},
        {"BRN", "076"},
        {"BRR", "987"},
        {"BSD", "044"},
        {"BTN", "064"},
        {"BWP", "072"},
        {"BYB", "112"},
        {"BYN", "933"},
        {"BYR", "974"},
        {"BZD", "084"},
        {"CAD", "124"},
        {"CDF", "976"},
        {"CHC", "948"},
        {"CHE", "947"},
        {"CHF", "756"},
        {"CHW", "948"},
        {"CLF", "990"},
        {"CLP", "152"},
        {"CNY", "156"},
        {"COP", "170"},
        {"COU", "970"},
        {"CRC", "188"},
        {"CSD", "891"},
        {"CSK", "200"},
        {"CUC", "931"},
        {"CUP", "192"},
        {"CVE", "132"},
        {"CYP", "196"},
        {"CZK", "203"},
        {"DDM", "278"},
        {"DEM", "276"},
        {"DJF", "262"},
        {"DKK", "208"},
        {"DOP", "214"},
        {"DZD", "012"},
        {"ECS", "218"},
        {"ECV", "983"},
        {"EEK", "233"},
        {"EGP", "818"},
        {"ERN", "232"},
        {"ESA", "996"},
        {"ESB", "995"},
        {"ESP", "724"},
        {"ETB", "230"},
        {"EUR", "978"},
        {"FIM", "246"},
        {"FJD", "242"},
        {"FKP", "238"},
        {"FRF", "250"},
        {"GBP", "826"},
        {"GEK", "268"},
        {"GEL", "981"},
        {"GHC", "288"},
        {"GHP", "939"},
        {"GHS", "936"},
        {"GIP", "292"},
        {"GMD", "270"},
        {"GNF", "324"},
        {"GQE", "226"},
        {"GRD", "300"},
        {"GTQ", "320"},
        {"GWP", "624"},
        {"GYD", "328"},
        {"HKD", "344"},
        {"HNL", "340"},
        {"HRD", "191"},
        {"HRK", "191"},
        {"HTG", "332"},
        {"HUF", "348"},
        {"IDR", "360"},
        {"IEP", "372"},
        {"ILS", "376"},
        {"INR", "356"},
        {"IQD", "368"},
        {"IRR", "364"},
        {"ISK", "352"},
        {"ITL", "380"},
        {"JMD", "388"},
        {"JOD", "400"},
        {"JPY", "392"},
        {"KES", "404"},
        {"KGS", "417"},
        {"KHR", "116"},
        {"KMF", "174"},
        {"KPW", "408"},
        {"KRW", "410"},
        {"KWD", "414"},
        {"KYD", "136"},
        {"KZT", "398"},
        {"LAK", "418"},
        {"LBP", "422"},
        {"LKR", "144"},
        {"LRD", "430"},
        {"LSL", "426"},
        {"LTL", "440"},
        {"LTT", "440"},
        {"LUC", "989"},
        {"LUF", "442"},
        {"LUL", "988"},
        {"LVL", "428"},
        {"LVR", "428"},
        {"LYD", "434"},
        {"MAD", "504"},
        {"MDL", "498"},
        {"MGA", "969"},
        {"MGF", "450"},
        {"MKD", "807"},
        {"MLF", "466"},
        {"MMK", "104"},
        {"MNT", "496"},
        {"MOP", "446"},
        {"MRO", "478"},
        {"MTL", "470"},
        {"MUR", "480"},
        {"MVR", "462"},
        {"MWK", "454"},
        {"MXN", "484"},
        {"MXV", "979"},
        {"MYR", "458"},
        {"MZM", "508"},
        {"MZN", "943"},
        {"NAD", "516"},
        {"NGN", "566"},
        {"NIO", "558"},
        {"NLG", "528"},
        {"NOK", "578"},
        {"NPR", "524"},
        {"NZD", "554"},
        {"OMR", "512"},
        {"PAB", "590"},
        {"PEI", "604"},
        {"PEN", "604"},
        {"PES", "604"},
        {"PGK", "598"},
        {"PHP", "608"},
        {"PKR", "586"},
        {"PLN", "985"},
        {"PLZ", "616"},
        {"PTE", "620"},
        {"PYG", "600"},
        {"QAR", "634"},
        {"ROL", "642"},
        {"RON", "946"},
        {"RSD", "941"},
        {"RUB", "643"},
        {"RUR", "810"},
        {"RWF", "646"},
        {"SAR", "682"},
        {"SBD", "090"},
        {"SCR", "690"},
        {"SDD", "736"},
        {"SDG", "938"},
        {"SEK", "752"},
        {"SGD", "702"},
        {"SHP", "654"},
        {"SIT", "705"},
        {"SKK", "703"},
        {"SLL", "694"},
        {"SOS", "706"},
        {"SRD", "968"},
        {"SRG", "740"},
        {"SSP", "728"},
        {"STD", "678"},
        {"SVC", "222"},
        {"SYP", "760"},
        {"SZL", "748"},
        {"THB", "764"},
        {"TJR", "762"},
        {"TJS", "972"},
        {"TMM", "795"},
        {"TMT", "934"},
        {"TND", "788"},
        {"TOP", "776"},
        {"TPE", "626"},
        {"TRL", "792"},
        {"TRY", "949"},
        {"TTD", "780"},
        {"TWD", "901"},
        {"TZS", "834"},
        {"UAH", "980"},
        {"UAK", "804"},
        {"UGX", "800"},
        {"USD", "840"},
        {"USN", "997"},
        {"USS", "998"},
        {"UYI", "940"},
        {"UYU", "858"},
        {"UZS", "860"},
        {"VEB", "862"},
        {"VEF", "937"},
        {"VND", "704"},
        {"VUV", "548"},
        {"WST", "882"},
        {"XAF", "950"},
        {"XAG", "961"},
        {"XAU", "959"},
        {"XBA", "955"},
        {"XBB", "956"},
        {"XBC", "957"},
        {"XBD", "958"},
        {"XCD", "951"},
        {"XDR", "960"},
        {"XEU", "954"},
        {"XOF", "952"},
        {"XPD", "964"},
        {"XPF", "953"},
        {"XPT", "962"},
        {"XSU", "994"},
        {"XTS", "963"},
        {"XUA", "965"},
        {"XXX", "999"},
        {"YDD", "720"},
        {"YER", "886"},
        {"YUM", "891"},
        {"YUN", "890"},
        {"ZAL", "991"},
        {"ZAR", "710"},
        {"ZMK", "894"},
        {"ZMW", "967"},
        {"ZRN", "180"},
        {"ZRZ", "180"},
        {"ZWD", "716"},
        {"ZWL", "932"},
        {"ZWN", "942"},
        {"ZWR", "935"},
    };
}
