com.opensymphony.xwork2.DefaultTextProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xwork Show documentation
Show all versions of xwork Show documentation
XWork is an command-pattern framework that is used to power WebWork
as well as other applications. XWork provides an Inversion of Control
container, a powerful expression language, data type conversion,
validation, and pluggable configuration.
/*
* Copyright (c) 2002-2006 by OpenSymphony
* All rights reserved.
*/
package com.opensymphony.xwork2;
import com.opensymphony.xwork2.util.LocalizedTextUtil;
import com.opensymphony.xwork2.util.ValueStack;
import java.io.ObjectStreamException;
import java.io.Serializable;
import java.util.List;
import java.util.ResourceBundle;
import java.util.ArrayList;
import java.util.Arrays;
import java.text.MessageFormat;
/**
* DefaultTextProvider gets texts from only the default resource bundles associated with the
* LocalizedTextUtil.
*
* @author Jason Carreira
* @author Rainer Hermanns
* @see LocalizedTextUtil#addDefaultResourceBundle(String)
*/
public class DefaultTextProvider implements TextProvider, Serializable, Unchainable {
private static final Object[] EMPTY_ARGS = new Object[0];
public static final DefaultTextProvider INSTANCE = new DefaultTextProvider();
private DefaultTextProvider() {
}
public String getText(String key) {
return LocalizedTextUtil.findDefaultText(key, ActionContext.getContext().getLocale());
}
public String getText(String key, String defaultValue) {
String text = getText(key);
if (text == null) {
return defaultValue;
}
return text;
}
public String getText(String key, List args) {
Object[] params;
if (args != null) {
params = args.toArray();
} else {
params = EMPTY_ARGS;
}
return LocalizedTextUtil.findDefaultText(key, ActionContext.getContext().getLocale(), params);
}
public String getText(String key, String[] args) {
Object[] params;
if (args != null) {
params = args;
} else {
params = EMPTY_ARGS;
}
return LocalizedTextUtil.findDefaultText(key, ActionContext.getContext().getLocale(), params);
}
public String getText(String key, String defaultValue, List args) {
String text = getText(key, args);
if (text == null) {
MessageFormat format = new MessageFormat(defaultValue);
format.setLocale(ActionContext.getContext().getLocale());
format.applyPattern(defaultValue);
Object[] params;
if (args != null) {
params = args.toArray();
} else {
params = EMPTY_ARGS;
}
return format.format(params);
}
return text;
}
public String getText(String key, String defaultValue, String[] args) {
String text = getText(key, args);
if (text == null) {
MessageFormat format = new MessageFormat(defaultValue);
format.setLocale(ActionContext.getContext().getLocale());
format.applyPattern(defaultValue);
if (args == null) {
return format.format(EMPTY_ARGS);
}
return format.format(args);
}
return text;
}
public String getText(String key, String defaultValue, String obj) {
List args = new ArrayList(1);
args.add(obj);
return getText(key, defaultValue, args);
}
public String getText(String key, String defaultValue, List args, ValueStack stack) {
//we're not using the value stack here
return getText(key, defaultValue, args);
}
public String getText(String key, String defaultValue, String[] args, ValueStack stack) {
//we're not using the value stack here
return getText(key, defaultValue, Arrays.asList(args));
}
public ResourceBundle getTexts(String bundleName) {
return LocalizedTextUtil.findResourceBundle(bundleName, ActionContext.getContext().getLocale());
}
public ResourceBundle getTexts() {
return null;
}
private Object readResolve() throws ObjectStreamException {
return INSTANCE;
}
}