ICU-7434 switch RelativeDateTimeFormatter from SimpleCache to SoftCache

X-SVN-Rev: 38745
This commit is contained in:
Markus Scherer 2016-05-16 21:46:11 +00:00
parent 11ddfe3376
commit 6cc82d7089

View file

@ -9,13 +9,13 @@ package com.ibm.icu.text;
import java.util.EnumMap;
import java.util.Locale;
import com.ibm.icu.impl.CacheBase;
import com.ibm.icu.impl.CalendarData;
import com.ibm.icu.impl.DontCareFieldPosition;
import com.ibm.icu.impl.ICUCache;
import com.ibm.icu.impl.ICUData;
import com.ibm.icu.impl.ICUResourceBundle;
import com.ibm.icu.impl.SimpleCache;
import com.ibm.icu.impl.SimpleFormatterImpl;
import com.ibm.icu.impl.SoftCache;
import com.ibm.icu.impl.StandardPlural;
import com.ibm.icu.impl.UResource;
import com.ibm.icu.lang.UCharacter;
@ -864,17 +864,17 @@ public final class RelativeDateTimeFormatter {
}
private static class Cache {
private final ICUCache<String, RelativeDateTimeFormatterData> cache =
new SimpleCache<String, RelativeDateTimeFormatterData>();
private final CacheBase<String, RelativeDateTimeFormatterData, ULocale> cache =
new SoftCache<String, RelativeDateTimeFormatterData, ULocale>() {
@Override
protected RelativeDateTimeFormatterData createInstance(String key, ULocale locale) {
return new Loader(locale).load();
}
};
public RelativeDateTimeFormatterData get(ULocale locale) {
String key = locale.toString();
RelativeDateTimeFormatterData result = cache.get(key);
if (result == null) {
result = new Loader(locale).load();
cache.put(key, result);
}
return result;
return cache.getInstance(key, locale);
}
}