package org.beanfuse.text; import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; public abstract class AbstractTextResource implements TextResource { protected static final Object[] EMPTY_ARGS = new Object[0]; public String getText(String key, String defaultValue) { String text = getText(key); if (null == text) { return defaultValue; } 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, List args) { Object[] params; if (null == args) { params = EMPTY_ARGS; } else { params = args.toArray(); } return getText(key, params); } public String getText(String key, String defaultValue, List args) { Object[] params; if (null == args) { params = EMPTY_ARGS; } else { params = args.toArray(); } return getText(key, defaultValue, params); } public String getText(String key, String defaultValue, Object[] args) { String text = getText(key, args); String defaultVal = defaultValue; if (null == text && null == defaultVal) { defaultVal = key; } if (null == text && defaultVal != null) { MessageFormat format = new MessageFormat(defaultVal); format.setLocale(getLocale()); format.applyPattern(defaultVal); return format.format(args); } return text; } }