com.googlecode.gwt.test.internal.patchers.CurrencyListPatcher Maven / Gradle / Ivy
package com.googlecode.gwt.test.internal.patchers;
import com.google.gwt.i18n.client.CurrencyData;
import com.google.gwt.i18n.client.CurrencyList;
import com.google.gwt.i18n.client.impl.CurrencyDataImpl;
import com.googlecode.gwt.test.internal.AfterTestCallback;
import com.googlecode.gwt.test.internal.AfterTestCallbackManager;
import com.googlecode.gwt.test.internal.GwtConfig;
import com.googlecode.gwt.test.internal.utils.GwtPropertiesHelper;
import com.googlecode.gwt.test.patchers.PatchClass;
import com.googlecode.gwt.test.patchers.PatchMethod;
import java.util.*;
@PatchClass(CurrencyList.class)
class CurrencyListPatcher {
private static class CurrencyDataHolder implements AfterTestCallback {
private final Map currencyDatas = new HashMap();
private CurrencyDataHolder() {
AfterTestCallbackManager.get().registerCallback(this);
}
public void afterTest() throws Throwable {
currencyDatas.clear();
}
CurrencyData getCurrencyData(Locale locale) {
CurrencyData currencyData = currencyDatas.get(locale);
if (currencyData == null) {
currencyData = createCurrencyData(locale);
currencyDatas.put(locale, currencyData);
}
return currencyData;
}
private CurrencyData createCurrencyData(Locale locale) {
Properties currencyData = GwtPropertiesHelper.get().getLocalizedProperties(
"com/google/gwt/i18n/client/impl/cldr/CurrencyData", locale);
Properties currencyExtra = GwtPropertiesHelper.get().getProperties(
"com/google/gwt/i18n/client/constants/CurrencyExtra");
Properties numberConstants = GwtPropertiesHelper.get().getLocalizedProperties(
"com/google/gwt/i18n/client/constants/NumberConstantsImpl", locale);
Set