View Javadoc

1   package org.seasar.cubby.util;
2   
3   import static org.seasar.cubby.CubbyConstants.RES_MESSAGES;
4   
5   import java.text.MessageFormat;
6   import java.util.ResourceBundle;
7   
8   import org.seasar.framework.util.ResourceBundleUtil;
9   
10  /**
11   * メッセージリソースを取得するユーティリティクラスです。
12   * @author agata
13   */
14  public class Messages {
15  
16  	/**
17  	 * 指定されたメッセージリソースから指定されたキーの値を取得し、置換処理を行ったメッセージを取得します。
18  	 * @param resource メッセージリソース
19  	 * @param key メッセージキー
20  	 * @param args 置換文字列
21  	 * @return 置換処理後のメッセージ
22  	 */
23  	public static String getText(ResourceBundle resource, String key,
24  			Object... args) {
25  		return MessageFormat.format(resource.getString(key), args);
26  	}
27  
28  	/**
29  	 * メッセージリソース(messages.properties)から指定されたキーの値を取得し、置換処理を行ったメッセージを取得します。
30  	 * <pre>
31  	 * msg.sample2=メッセージ中に置換文字列を使用できます(引数1={0}, 引数2={1})。
32  	 * 
33  	 * // 「メッセージ中に置換文字列を使用できます(引数1=foo, 引数2=bar)。」
34  	 * String message = Messages.getText("msg.sample2", "foo", "bar");
35  	 * </pre>
36  	 * @see Messages#getText(ResourceBundle, String, Object...)
37  	 * @param key メッセージキー
38  	 * @param args 置換文字列
39  	 * @return 置換処理後のメッセージ
40  	 */
41  	public static String getText(String key, Object... args) {
42  		ResourceBundle resource = ResourceBundleUtil.getBundle(RES_MESSAGES,
43  				LocaleHolder.getLocale());
44  		return getText(resource, key, args);
45  	}
46  }