package net.techreadiness.ui.text; import java.util.List; import java.util.Locale; import java.util.ResourceBundle; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.util.LocalizedTextUtil; import com.opensymphony.xwork2.util.ValueStack; /** * allows a ResourceBundle to be used as a TextProvider * */ public class ResourceBundleTextProviderAdapter extends SimpleTextProvider { private final ResourceBundle resourceBundle; public ResourceBundleTextProviderAdapter(ResourceBundle resourceBundle) { this.resourceBundle = resourceBundle; } @Override public boolean hasKey(String key) { return resourceBundle.containsKey(key); } @Override public ResourceBundle getTexts(String bundleName) { return resourceBundle; } @Override public ResourceBundle getTexts() { return resourceBundle; } @Override public String getText(String key, String defaultValue, List<?> args, ValueStack stack) { Object[] argsArray = args != null ? args.toArray() : null; Locale locale = (Locale) stack.getContext().get(ActionContext.LOCALE); return LocalizedTextUtil.findText(resourceBundle, key, locale, defaultValue, argsArray, stack); } }