Skip to content

Commit 9b317d3

Browse files
elPeirettijavier-godoy
authored andcommitted
refactor: init LocaleCountryConverter's map with static block
1 parent a1017f9 commit 9b317d3

File tree

1 file changed

+258
-67
lines changed

1 file changed

+258
-67
lines changed

src/main/java/com/flowingcode/vaadin/addons/localecombobox/LocaleCountryConverter.java

Lines changed: 258 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -43,61 +43,265 @@
4343
*/
4444
public class LocaleCountryConverter {
4545

46-
private static final int TOTAL_COUNTRIES = 249;
47-
private static final List<String> alpha2codes =
48-
List.of("AF", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT",
49-
"AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW",
50-
"BV", "BR", "IO", "BN", "BG", "BF", "BI", "CV", "KH", "CM", "CA", "KY", "CF", "TD", "CL",
51-
"CN", "CX", "CC", "CO", "KM", "CD", "CG", "CK", "CR", "HR", "CU", "CW", "CY", "CZ", "CI",
52-
"DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "SZ", "ET", "FK", "FO", "FJ",
53-
"FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP",
54-
"GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID",
55-
"IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KP", "KR",
56-
"KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MG", "MW", "MY",
57-
"MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS",
58-
"MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MK",
59-
"MP", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR",
60-
"QA", "RO", "RU", "RW", "RE", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST",
61-
"SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES",
62-
"LK", "SD", "SR", "SJ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO",
63-
"TT", "TN", "TM", "TC", "TV", "TR", "UG", "UA", "AE", "GB", "UM", "US", "UY", "UZ", "VU",
64-
"VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW", "AX");
65-
private static final List<String> alpha3codes = List.of("AFG", "ALB", "DZA", "ASM", "AND", "AGO",
66-
"AIA", "ATA", "ATG", "ARG", "ARM", "ABW", "AUS", "AUT", "AZE", "BHS", "BHR", "BGD", "BRB",
67-
"BLR", "BEL", "BLZ", "BEN", "BMU", "BTN", "BOL", "BES", "BIH", "BWA", "BVT", "BRA", "IOT",
68-
"BRN", "BGR", "BFA", "BDI", "CPV", "KHM", "CMR", "CAN", "CYM", "CAF", "TCD", "CHL", "CHN",
69-
"CXR", "CCK", "COL", "COM", "COD", "COG", "COK", "CRI", "HRV", "CUB", "CUW", "CYP", "CZE",
70-
"CIV", "DNK", "DJI", "DMA", "DOM", "ECU", "EGY", "SLV", "GNQ", "ERI", "EST", "SWZ", "ETH",
71-
"FLK", "FRO", "FJI", "FIN", "FRA", "GUF", "PYF", "ATF", "GAB", "GMB", "GEO", "DEU", "GHA",
72-
"GIB", "GRC", "GRL", "GRD", "GLP", "GUM", "GTM", "GGY", "GIN", "GNB", "GUY", "HTI", "HMD",
73-
"VAT", "HND", "HKG", "HUN", "ISL", "IND", "IDN", "IRN", "IRQ", "IRL", "IMN", "ISR", "ITA",
74-
"JAM", "JPN", "JEY", "JOR", "KAZ", "KEN", "KIR", "PRK", "KOR", "KWT", "KGZ", "LAO", "LVA",
75-
"LBN", "LSO", "LBR", "LBY", "LIE", "LTU", "LUX", "MAC", "MDG", "MWI", "MYS", "MDV", "MLI",
76-
"MLT", "MHL", "MTQ", "MRT", "MUS", "MYT", "MEX", "FSM", "MDA", "MCO", "MNG", "MNE", "MSR",
77-
"MAR", "MOZ", "MMR", "NAM", "NRU", "NPL", "NLD", "NCL", "NZL", "NIC", "NER", "NGA", "NIU",
78-
"NFK", "MKD", "MNP", "NOR", "OMN", "PAK", "PLW", "PSE", "PAN", "PNG", "PRY", "PER", "PHL",
79-
"PCN", "POL", "PRT", "PRI", "QAT", "ROU", "RUS", "RWA", "REU", "BLM", "SHN", "KNA", "LCA",
80-
"MAF", "SPM", "VCT", "WSM", "SMR", "STP", "SAU", "SEN", "SRB", "SYC", "SLE", "SGP", "SXM",
81-
"SVK", "SVN", "SLB", "SOM", "ZAF", "SGS", "SSD", "ESP", "LKA", "SDN", "SUR", "SJM", "SWE",
82-
"CHE", "SYR", "TWN", "TJK", "TZA", "THA", "TLS", "TGO", "TKL", "TON", "TTO", "TUN", "TKM",
83-
"TCA", "TUV", "TUR", "UGA", "UKR", "ARE", "GBR", "UMI", "USA", "URY", "UZB", "VUT", "VEN",
84-
"VNM", "VGB", "VIR", "WLF", "ESH", "YEM", "ZMB", "ZWE", "ALA");
85-
private static final List<Integer> numericCodes = List.of(4, 8, 12, 16, 20, 24, 660, 10, 28, 32,
86-
51, 533, 36, 40, 31, 44, 48, 50, 52, 112, 56, 84, 204, 60, 64, 68, 535, 70, 72, 74, 76, 86,
87-
96, 100, 854, 108, 132, 116, 120, 124, 136, 140, 148, 152, 156, 162, 166, 170, 174, 180, 178,
88-
184, 188, 191, 192, 531, 196, 203, 384, 208, 262, 212, 214, 218, 818, 222, 226, 232, 233, 748,
89-
231, 238, 234, 242, 246, 250, 254, 258, 260, 266, 270, 268, 276, 288, 292, 300, 304, 308, 312,
90-
316, 320, 831, 324, 624, 328, 332, 334, 336, 340, 344, 348, 352, 356, 360, 364, 368, 372, 833,
91-
376, 380, 388, 392, 832, 400, 398, 404, 296, 408, 410, 414, 417, 418, 428, 422, 426, 430, 434,
92-
438, 440, 442, 446, 450, 454, 458, 462, 466, 470, 584, 474, 478, 480, 175, 484, 583, 498, 492,
93-
496, 499, 500, 504, 508, 104, 516, 520, 524, 528, 540, 554, 558, 562, 566, 570, 574, 807, 580,
94-
578, 512, 586, 585, 275, 591, 598, 600, 604, 608, 612, 616, 620, 630, 634, 642, 643, 646, 638,
95-
652, 654, 659, 662, 663, 666, 670, 882, 674, 678, 682, 686, 688, 690, 694, 702, 534, 703, 705,
96-
90, 706, 710, 239, 728, 724, 144, 729, 740, 744, 752, 756, 760, 158, 762, 834, 764, 626, 768,
97-
772, 776, 780, 788, 795, 796, 798, 792, 800, 804, 784, 826, 581, 840, 858, 860, 548, 862, 704,
98-
92, 850, 876, 732, 887, 894, 716, 248);
46+
private static final Map<String, String> conversions = new HashMap<>();
9947

100-
private static final Map<String, String> conversions = getConversionsMap();
48+
private static void add(String alpha2, String alpha3, int numeric) {
49+
conversions.put(alpha2, alpha2);
50+
conversions.put(alpha3, alpha2);
51+
conversions.put(Integer.toString(numeric), alpha2);
52+
}
53+
54+
static {
55+
add("AF", "AFG", 4);
56+
add("AL", "ALB", 8);
57+
add("DZ", "DZA", 12);
58+
add("AS", "ASM", 16);
59+
add("AD", "AND", 20);
60+
add("AO", "AGO", 24);
61+
add("AI", "AIA", 660);
62+
add("AQ", "ATA", 10);
63+
add("AG", "ATG", 28);
64+
add("AR", "ARG", 32);
65+
add("AM", "ARM", 51);
66+
add("AW", "ABW", 533);
67+
add("AU", "AUS", 36);
68+
add("AT", "AUT", 40);
69+
add("AZ", "AZE", 31);
70+
add("BS", "BHS", 44);
71+
add("BH", "BHR", 48);
72+
add("BD", "BGD", 50);
73+
add("BB", "BRB", 52);
74+
add("BY", "BLR", 112);
75+
add("BE", "BEL", 56);
76+
add("BZ", "BLZ", 84);
77+
add("BJ", "BEN", 204);
78+
add("BM", "BMU", 60);
79+
add("BT", "BTN", 64);
80+
add("BO", "BOL", 68);
81+
add("BQ", "BES", 535);
82+
add("BA", "BIH", 70);
83+
add("BW", "BWA", 72);
84+
add("BV", "BVT", 74);
85+
add("BR", "BRA", 76);
86+
add("IO", "IOT", 86);
87+
add("BN", "BRN", 96);
88+
add("BG", "BGR", 100);
89+
add("BF", "BFA", 854);
90+
add("BI", "BDI", 108);
91+
add("CV", "CPV", 132);
92+
add("KH", "KHM", 116);
93+
add("CM", "CMR", 120);
94+
add("CA", "CAN", 124);
95+
add("KY", "CYM", 136);
96+
add("CF", "CAF", 140);
97+
add("TD", "TCD", 148);
98+
add("CL", "CHL", 152);
99+
add("CN", "CHN", 156);
100+
add("CX", "CXR", 162);
101+
add("CC", "CCK", 166);
102+
add("CO", "COL", 170);
103+
add("KM", "COM", 174);
104+
add("CD", "COD", 180);
105+
add("CG", "COG", 178);
106+
add("CK", "COK", 184);
107+
add("CR", "CRI", 188);
108+
add("HR", "HRV", 191);
109+
add("CU", "CUB", 192);
110+
add("CW", "CUW", 531);
111+
add("CY", "CYP", 196);
112+
add("CZ", "CZE", 203);
113+
add("CI", "CIV", 384);
114+
add("DK", "DNK", 208);
115+
add("DJ", "DJI", 262);
116+
add("DM", "DMA", 212);
117+
add("DO", "DOM", 214);
118+
add("EC", "ECU", 218);
119+
add("EG", "EGY", 818);
120+
add("SV", "SLV", 222);
121+
add("GQ", "GNQ", 226);
122+
add("ER", "ERI", 232);
123+
add("EE", "EST", 233);
124+
add("SZ", "SWZ", 748);
125+
add("ET", "ETH", 231);
126+
add("FK", "FLK", 238);
127+
add("FO", "FRO", 234);
128+
add("FJ", "FJI", 242);
129+
add("FI", "FIN", 246);
130+
add("FR", "FRA", 250);
131+
add("GF", "GUF", 254);
132+
add("PF", "PYF", 258);
133+
add("TF", "ATF", 260);
134+
add("GA", "GAB", 266);
135+
add("GM", "GMB", 270);
136+
add("GE", "GEO", 268);
137+
add("DE", "DEU", 276);
138+
add("GH", "GHA", 288);
139+
add("GI", "GIB", 292);
140+
add("GR", "GRC", 300);
141+
add("GL", "GRL", 304);
142+
add("GD", "GRD", 308);
143+
add("GP", "GLP", 312);
144+
add("GU", "GUM", 316);
145+
add("GT", "GTM", 320);
146+
add("GG", "GGY", 831);
147+
add("GN", "GIN", 324);
148+
add("GW", "GNB", 624);
149+
add("GY", "GUY", 328);
150+
add("HT", "HTI", 332);
151+
add("HM", "HMD", 334);
152+
add("VA", "VAT", 336);
153+
add("HN", "HND", 340);
154+
add("HK", "HKG", 344);
155+
add("HU", "HUN", 348);
156+
add("IS", "ISL", 352);
157+
add("IN", "IND", 356);
158+
add("ID", "IDN", 360);
159+
add("IR", "IRN", 364);
160+
add("IQ", "IRQ", 368);
161+
add("IE", "IRL", 372);
162+
add("IM", "IMN", 833);
163+
add("IL", "ISR", 376);
164+
add("IT", "ITA", 380);
165+
add("JM", "JAM", 388);
166+
add("JP", "JPN", 392);
167+
add("JE", "JEY", 832);
168+
add("JO", "JOR", 400);
169+
add("KZ", "KAZ", 398);
170+
add("KE", "KEN", 404);
171+
add("KI", "KIR", 296);
172+
add("KP", "PRK", 408);
173+
add("KR", "KOR", 410);
174+
add("KW", "KWT", 414);
175+
add("KG", "KGZ", 417);
176+
add("LA", "LAO", 418);
177+
add("LV", "LVA", 428);
178+
add("LB", "LBN", 422);
179+
add("LS", "LSO", 426);
180+
add("LR", "LBR", 430);
181+
add("LY", "LBY", 434);
182+
add("LI", "LIE", 438);
183+
add("LT", "LTU", 440);
184+
add("LU", "LUX", 442);
185+
add("MO", "MAC", 446);
186+
add("MG", "MDG", 450);
187+
add("MW", "MWI", 454);
188+
add("MY", "MYS", 458);
189+
add("MV", "MDV", 462);
190+
add("ML", "MLI", 466);
191+
add("MT", "MLT", 470);
192+
add("MH", "MHL", 584);
193+
add("MQ", "MTQ", 474);
194+
add("MR", "MRT", 478);
195+
add("MU", "MUS", 480);
196+
add("YT", "MYT", 175);
197+
add("MX", "MEX", 484);
198+
add("FM", "FSM", 583);
199+
add("MD", "MDA", 498);
200+
add("MC", "MCO", 492);
201+
add("MN", "MNG", 496);
202+
add("ME", "MNE", 499);
203+
add("MS", "MSR", 500);
204+
add("MA", "MAR", 504);
205+
add("MZ", "MOZ", 508);
206+
add("MM", "MMR", 104);
207+
add("NA", "NAM", 516);
208+
add("NR", "NRU", 520);
209+
add("NP", "NPL", 524);
210+
add("NL", "NLD", 528);
211+
add("NC", "NCL", 540);
212+
add("NZ", "NZL", 554);
213+
add("NI", "NIC", 558);
214+
add("NE", "NER", 562);
215+
add("NG", "NGA", 566);
216+
add("NU", "NIU", 570);
217+
add("NF", "NFK", 574);
218+
add("MK", "MKD", 807);
219+
add("MP", "MNP", 580);
220+
add("NO", "NOR", 578);
221+
add("OM", "OMN", 512);
222+
add("PK", "PAK", 586);
223+
add("PW", "PLW", 585);
224+
add("PS", "PSE", 275);
225+
add("PA", "PAN", 591);
226+
add("PG", "PNG", 598);
227+
add("PY", "PRY", 600);
228+
add("PE", "PER", 604);
229+
add("PH", "PHL", 608);
230+
add("PN", "PCN", 612);
231+
add("PL", "POL", 616);
232+
add("PT", "PRT", 620);
233+
add("PR", "PRI", 630);
234+
add("QA", "QAT", 634);
235+
add("RO", "ROU", 642);
236+
add("RU", "RUS", 643);
237+
add("RW", "RWA", 646);
238+
add("RE", "REU", 638);
239+
add("BL", "BLM", 652);
240+
add("SH", "SHN", 654);
241+
add("KN", "KNA", 659);
242+
add("LC", "LCA", 662);
243+
add("MF", "MAF", 663);
244+
add("PM", "SPM", 666);
245+
add("VC", "VCT", 670);
246+
add("WS", "WSM", 882);
247+
add("SM", "SMR", 674);
248+
add("ST", "STP", 678);
249+
add("SA", "SAU", 682);
250+
add("SN", "SEN", 686);
251+
add("RS", "SRB", 688);
252+
add("SC", "SYC", 690);
253+
add("SL", "SLE", 694);
254+
add("SG", "SGP", 702);
255+
add("SX", "SXM", 534);
256+
add("SK", "SVK", 703);
257+
add("SI", "SVN", 705);
258+
add("SB", "SLB", 90);
259+
add("SO", "SOM", 706);
260+
add("ZA", "ZAF", 710);
261+
add("GS", "SGS", 239);
262+
add("SS", "SSD", 728);
263+
add("ES", "ESP", 724);
264+
add("LK", "LKA", 144);
265+
add("SD", "SDN", 729);
266+
add("SR", "SUR", 740);
267+
add("SJ", "SJM", 744);
268+
add("SE", "SWE", 752);
269+
add("CH", "CHE", 756);
270+
add("SY", "SYR", 760);
271+
add("TW", "TWN", 158);
272+
add("TJ", "TJK", 762);
273+
add("TZ", "TZA", 834);
274+
add("TH", "THA", 764);
275+
add("TL", "TLS", 626);
276+
add("TG", "TGO", 768);
277+
add("TK", "TKL", 772);
278+
add("TO", "TON", 776);
279+
add("TT", "TTO", 780);
280+
add("TN", "TUN", 788);
281+
add("TM", "TKM", 795);
282+
add("TC", "TCA", 796);
283+
add("TV", "TUV", 798);
284+
add("TR", "TUR", 792);
285+
add("UG", "UGA", 800);
286+
add("UA", "UKR", 804);
287+
add("AE", "ARE", 784);
288+
add("GB", "GBR", 826);
289+
add("UM", "UMI", 581);
290+
add("US", "USA", 840);
291+
add("UY", "URY", 858);
292+
add("UZ", "UZB", 860);
293+
add("VU", "VUT", 548);
294+
add("VE", "VEN", 862);
295+
add("VN", "VNM", 704);
296+
add("VG", "VGB", 92);
297+
add("VI", "VIR", 850);
298+
add("WF", "WLF", 876);
299+
add("EH", "ESH", 732);
300+
add("YE", "YEM", 887);
301+
add("ZM", "ZMB", 894);
302+
add("ZW", "ZWE", 716);
303+
add("AX", "ALA", 248);
304+
}
101305

102306
/**
103307
* Converts a country code to its corresponding ISO 3166-1 alpha-2 code.
@@ -112,17 +316,4 @@ public static Optional<String> convertToISO3166Code(String countryCode) {
112316
return Optional.ofNullable(conversions.get(countryCode.toUpperCase()));
113317
}
114318

115-
private static Map<String, String> getConversionsMap() {
116-
var conversions = new HashMap<String, String>();
117-
118-
for (int i = 0; i < TOTAL_COUNTRIES; i++) {
119-
String alpha2 = alpha2codes.get(i);
120-
conversions.put(alpha2, alpha2);
121-
conversions.put(alpha3codes.get(i), alpha2);
122-
conversions.put(numericCodes.get(i).toString(), alpha2);
123-
}
124-
125-
return conversions;
126-
}
127-
128319
}

0 commit comments

Comments
 (0)