Injects user defined provider and uses it if available

This commit is contained in:
Lukasz Lenart
2017-10-25 20:20:43 +02:00
parent 5325f7834b
commit d821c27291
@@ -29,6 +29,7 @@ public class StrutsTextProviderFactory implements TextProviderFactory {
protected LocaleProviderFactory localeProviderFactory;
protected LocalizedTextProvider localizedTextProvider;
protected TextProvider defaultTextProvider;
@Inject
public void setLocaleProviderFactory(LocaleProviderFactory localeProviderFactory) {
@@ -40,6 +41,11 @@ public class StrutsTextProviderFactory implements TextProviderFactory {
this.localizedTextProvider = localizedTextProvider;
}
@Inject(required = false)
public void setDefaultTextProvider(TextProvider defaultTextProvider) {
this.defaultTextProvider = defaultTextProvider;
}
@Override
public TextProvider createInstance(Class clazz) {
TextProvider instance = getTextProvider(clazz);
@@ -61,10 +67,18 @@ public class StrutsTextProviderFactory implements TextProviderFactory {
}
protected TextProvider getTextProvider(Class clazz) {
if (defaultTextProvider != null) {
return defaultTextProvider;
}
return new TextProviderSupport(clazz, localeProviderFactory.createLocaleProvider(), localizedTextProvider);
}
protected TextProvider getTextProvider(ResourceBundle bundle) {
if (defaultTextProvider != null) {
return defaultTextProvider;
}
return new TextProviderSupport(bundle, localeProviderFactory.createLocaleProvider(), localizedTextProvider);
}