From da5da67d8027ad2fd05e579c893a4a8a8acd728e Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Fri, 10 Mar 2017 08:39:20 +0100 Subject: [PATCH] Makes factory fully injectable --- .../xwork2/TextProviderFactory.java | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/TextProviderFactory.java b/core/src/main/java/com/opensymphony/xwork2/TextProviderFactory.java index 331d5342d..b00f451ac 100644 --- a/core/src/main/java/com/opensymphony/xwork2/TextProviderFactory.java +++ b/core/src/main/java/com/opensymphony/xwork2/TextProviderFactory.java @@ -28,44 +28,49 @@ import java.util.ResourceBundle; public class TextProviderFactory { private TextProvider textProvider; + private LocaleProvider localeProvider; @Inject public void setTextProvider(TextProvider textProvider) { this.textProvider = textProvider; } - public TextProvider createInstance(Class clazz, LocaleProvider provider) { - TextProvider instance = getTextProvider(clazz, provider); + @Inject + public void setLocaleProvider(LocaleProvider localeProvider) { + this.localeProvider = localeProvider; + } + + public TextProvider createInstance(Class clazz) { + TextProvider instance = getTextProvider(clazz); if (instance instanceof ResourceBundleTextProvider) { ((ResourceBundleTextProvider) instance).setClazz(clazz); - ((ResourceBundleTextProvider) instance).setLocaleProvider(provider); + ((ResourceBundleTextProvider) instance).setLocaleProvider(localeProvider); } return instance; } - public TextProvider createInstance(ResourceBundle bundle, LocaleProvider provider) { - TextProvider instance = getTextProvider(bundle, provider); + public TextProvider createInstance(ResourceBundle bundle) { + TextProvider instance = getTextProvider(bundle); if (instance instanceof ResourceBundleTextProvider) { ((ResourceBundleTextProvider) instance).setBundle(bundle); - ((ResourceBundleTextProvider) instance).setLocaleProvider(provider); + ((ResourceBundleTextProvider) instance).setLocaleProvider(localeProvider); } return instance; } - protected TextProvider getTextProvider(Class clazz, LocaleProvider provider) { + protected TextProvider getTextProvider(Class clazz) { if (this.textProvider == null) { - return new TextProviderSupport(clazz, provider); + return new TextProviderSupport(clazz, localeProvider); } else { return textProvider; } } - private TextProvider getTextProvider(ResourceBundle bundle, LocaleProvider provider) { + private TextProvider getTextProvider(ResourceBundle bundle) { if (this.textProvider == null) { - return new TextProviderSupport(bundle, provider); - } else { - return textProvider; + textProvider = new TextProviderSupport(bundle, localeProvider); } + return textProvider; } }