mirror of
https://github.com/apache/struts.git
synced 2026-08-11 01:27:14 +00:00
Makes factory fully injectable
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user