1
22
23 package com.liferay.portlet.currencyconverter.util;
24
25 import com.liferay.portal.kernel.language.LanguageUtil;
26 import com.liferay.portal.kernel.util.StringPool;
27 import com.liferay.portal.util.WebCachePool;
28 import com.liferay.portal.util.WebCacheable;
29 import com.liferay.portlet.currencyconverter.model.Currency;
30 import com.liferay.util.CollectionFactory;
31
32 import java.util.Iterator;
33 import java.util.Locale;
34 import java.util.Map;
35 import java.util.Set;
36 import java.util.TreeMap;
37
38 import javax.servlet.http.HttpServletRequest;
39 import javax.servlet.jsp.PageContext;
40
41
47 public class CurrencyUtil {
48
49 public static Map getAllSymbols(PageContext pageContext) {
50 HttpServletRequest req = (HttpServletRequest)pageContext.getRequest();
51
52 Locale locale = req.getLocale();
53
54 String key = locale.toString();
55
56 Map symbols = (Map)_symbolsPool.get(key);
57
58 if (symbols != null) {
59 return symbols;
60 }
61
62 symbols = new TreeMap();
63
64 Iterator itr = _instance._currencyIds.iterator();
65
66 while (itr.hasNext()) {
67 String symbol = (String)itr.next();
68
69 symbols.put(LanguageUtil.get(pageContext, symbol), symbol);
70 }
71
72 _symbolsPool.put(key, symbols);
73
74 return symbols;
75 }
76
77 public static Currency getCurrency(String symbol) {
78 WebCacheable wc = new CurrencyConverter(symbol);
79
80 return (Currency)WebCachePool.get(
81 CurrencyUtil.class.getName() + StringPool.PERIOD + symbol, wc);
82 }
83
84 public static boolean isCurrency(String symbol) {
85 return _instance._currencyIds.contains(symbol);
86 }
87
88 private CurrencyUtil() {
89 _currencyIds = CollectionFactory.getHashSet();
90
91 _currencyIds.add("ALL");
92 _currencyIds.add("DZD");
93 _currencyIds.add("XAL");
94 _currencyIds.add("ARS");
95 _currencyIds.add("AWG");
96 _currencyIds.add("AUD");
97 _currencyIds.add("BSD");
98 _currencyIds.add("BHD");
99 _currencyIds.add("BDT");
100 _currencyIds.add("BBD");
101 _currencyIds.add("BYR");
102 _currencyIds.add("BZD");
103 _currencyIds.add("BMD");
104 _currencyIds.add("BTN");
105 _currencyIds.add("BOB");
106 _currencyIds.add("BRL");
107 _currencyIds.add("GBP");
108 _currencyIds.add("BND");
109 _currencyIds.add("BGN");
110 _currencyIds.add("BIF");
111 _currencyIds.add("KHR");
112 _currencyIds.add("CAD");
113 _currencyIds.add("KYD");
114 _currencyIds.add("XOF");
115 _currencyIds.add("XAF");
116 _currencyIds.add("CLP");
117 _currencyIds.add("CNY");
118 _currencyIds.add("COP");
119 _currencyIds.add("KMF");
120 _currencyIds.add("XCP");
121 _currencyIds.add("CRC");
122 _currencyIds.add("HRK");
123 _currencyIds.add("CUP");
124 _currencyIds.add("CYP");
125 _currencyIds.add("CZK");
126 _currencyIds.add("DKK");
127 _currencyIds.add("DJF");
128 _currencyIds.add("DOP");
129 _currencyIds.add("XCD");
130 _currencyIds.add("ECS");
131 _currencyIds.add("EGP");
132 _currencyIds.add("SVC");
133 _currencyIds.add("ERN");
134 _currencyIds.add("EEK");
135 _currencyIds.add("ETB");
136 _currencyIds.add("EUR");
137 _currencyIds.add("FKP");
138 _currencyIds.add("GMD");
139 _currencyIds.add("GHC");
140 _currencyIds.add("GIP");
141 _currencyIds.add("XAU");
142 _currencyIds.add("GTQ");
143 _currencyIds.add("GNF");
144 _currencyIds.add("HTG");
145 _currencyIds.add("HNL");
146 _currencyIds.add("HKD");
147 _currencyIds.add("HUF");
148 _currencyIds.add("ISK");
149 _currencyIds.add("INR");
150 _currencyIds.add("IDR");
151 _currencyIds.add("IRR");
152 _currencyIds.add("ILS");
153 _currencyIds.add("JMD");
154 _currencyIds.add("JPY");
155 _currencyIds.add("JOD");
156 _currencyIds.add("KZT");
157 _currencyIds.add("KES");
158 _currencyIds.add("KRW");
159 _currencyIds.add("KWD");
160 _currencyIds.add("LAK");
161 _currencyIds.add("LVL");
162 _currencyIds.add("LBP");
163 _currencyIds.add("LSL");
164 _currencyIds.add("LYD");
165 _currencyIds.add("LTL");
166 _currencyIds.add("MOP");
167 _currencyIds.add("MKD");
168 _currencyIds.add("MGF");
169 _currencyIds.add("MWK");
170 _currencyIds.add("MYR");
171 _currencyIds.add("MVR");
172 _currencyIds.add("MTL");
173 _currencyIds.add("MRO");
174 _currencyIds.add("MUR");
175 _currencyIds.add("MXN");
176 _currencyIds.add("MDL");
177 _currencyIds.add("MNT");
178 _currencyIds.add("MAD");
179 _currencyIds.add("MZM");
180 _currencyIds.add("NAD");
181 _currencyIds.add("NPR");
182 _currencyIds.add("ANG");
183 _currencyIds.add("TRY");
184 _currencyIds.add("NZD");
185 _currencyIds.add("NIO");
186 _currencyIds.add("NGN");
187 _currencyIds.add("NOK");
188 _currencyIds.add("OMR");
189 _currencyIds.add("XPF");
190 _currencyIds.add("PKR");
191 _currencyIds.add("XPD");
192 _currencyIds.add("PAB");
193 _currencyIds.add("PGK");
194 _currencyIds.add("PYG");
195 _currencyIds.add("PEN");
196 _currencyIds.add("PHP");
197 _currencyIds.add("XPT");
198 _currencyIds.add("PLN");
199 _currencyIds.add("QAR");
200 _currencyIds.add("ROL");
201 _currencyIds.add("RON");
202 _currencyIds.add("RUB");
203 _currencyIds.add("RWF");
204 _currencyIds.add("WST");
205 _currencyIds.add("STD");
206 _currencyIds.add("SAR");
207 _currencyIds.add("SCR");
208 _currencyIds.add("SLL");
209 _currencyIds.add("XAG");
210 _currencyIds.add("SGD");
211 _currencyIds.add("SKK");
212 _currencyIds.add("SIT");
213 _currencyIds.add("SOS");
214 _currencyIds.add("ZAR");
215 _currencyIds.add("LKR");
216 _currencyIds.add("SHP");
217 _currencyIds.add("SDD");
218 _currencyIds.add("SRG");
219 _currencyIds.add("SZL");
220 _currencyIds.add("SEK");
221 _currencyIds.add("CHF");
222 _currencyIds.add("SYP");
223 _currencyIds.add("TWD");
224 _currencyIds.add("TZS");
225 _currencyIds.add("THB");
226 _currencyIds.add("TOP");
227 _currencyIds.add("TTD");
228 _currencyIds.add("TND");
229 _currencyIds.add("USD");
230 _currencyIds.add("AED");
231 _currencyIds.add("UGX");
232 _currencyIds.add("UAH");
233 _currencyIds.add("UYU");
234 _currencyIds.add("VUV");
235 _currencyIds.add("VEB");
236 _currencyIds.add("VND");
237 _currencyIds.add("YER");
238 _currencyIds.add("ZMK");
239 _currencyIds.add("ZWD");
240 }
241
242 private static CurrencyUtil _instance = new CurrencyUtil();
243
244 private static Map _symbolsPool = CollectionFactory.getSyncHashMap();
245
246 private Set _currencyIds;
247
248 }