View Javadoc

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