package fi.otavanopisto.pyramus.I18N;
import java.util.Enumeration;
import java.util.LinkedHashSet;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.Vector;
public class ResourceBundleDelegate extends ResourceBundle {
public ResourceBundleDelegate(Locale locale) {
super();
this.locale = locale;
}
@Override
protected Object handleGetObject(String key) {
for (ResourceBundle bundle : bundles) {
if (bundle.containsKey(key))
return bundle.getObject(key);
}
return null;
}
@Override
public Enumeration<String> getKeys() {
return mergedKeys.elements();
}
@Override
public Locale getLocale() {
return locale;
}
public void addResourceBundle(ResourceBundle resourceBundle) {
bundles.add(resourceBundle);
mergedKeys.removeAll(resourceBundle.keySet());
mergedKeys.addAll(resourceBundle.keySet());
}
private Set<ResourceBundle> bundles = new LinkedHashSet<>();
private Vector<String> mergedKeys = new Vector<>();
private Locale locale;
}