package jxl.biff; import common.Logger; public class CountryCode { private static Logger logger = Logger.getLogger(CountryCode.class); private int value; private String code; private String description; private static CountryCode[] codes = new CountryCode[0]; private CountryCode(int v, String c, String d) { this.value = v; this.code = c; this.description = d; CountryCode[] newcodes = new CountryCode[codes.length + 1]; System.arraycopy(codes, 0, newcodes, 0, codes.length); newcodes[codes.length] = this; codes = newcodes; } private CountryCode(int v) { this.value = v; this.description = "Arbitrary"; this.code = "??"; } public int getValue() { return this.value; } public String getCode() { return this.code; } public static CountryCode getCountryCode(String s) { if (s == null || s.length() != 2) { logger.warn("Please specify two character ISO 3166 country code"); return USA; } CountryCode code = UNKNOWN; for (int i = 0; i < codes.length && code == UNKNOWN; i++) { if ((codes[i]).code.equals(s)) code = codes[i]; } return code; } public static CountryCode createArbitraryCode(int i) { return new CountryCode(i); } public static final CountryCode USA = new CountryCode(1, "US", "USA"); public static final CountryCode CANADA = new CountryCode(2, "CA", "Canada"); public static final CountryCode GREECE = new CountryCode(30, "GR", "Greece"); public static final CountryCode NETHERLANDS = new CountryCode(31, "NE", "Netherlands"); public static final CountryCode BELGIUM = new CountryCode(32, "BE", "Belgium"); public static final CountryCode FRANCE = new CountryCode(33, "FR", "France"); public static final CountryCode SPAIN = new CountryCode(34, "ES", "Spain"); public static final CountryCode ITALY = new CountryCode(39, "IT", "Italy"); public static final CountryCode SWITZERLAND = new CountryCode(41, "CH", "Switzerland"); public static final CountryCode UK = new CountryCode(44, "UK", "United Kingdowm"); public static final CountryCode DENMARK = new CountryCode(45, "DK", "Denmark"); public static final CountryCode SWEDEN = new CountryCode(46, "SE", "Sweden"); public static final CountryCode NORWAY = new CountryCode(47, "NO", "Norway"); public static final CountryCode GERMANY = new CountryCode(49, "DE", "Germany"); public static final CountryCode PHILIPPINES = new CountryCode(63, "PH", "Philippines"); public static final CountryCode CHINA = new CountryCode(86, "CN", "China"); public static final CountryCode INDIA = new CountryCode(91, "IN", "India"); public static final CountryCode UNKNOWN = new CountryCode(65535, "??", "Unknown"); }