public abstract class MessageSourceSupport extends ObjectSE
MessageFormat
SE 処理などのサポートインフラストラクチャを提供するが、MessageSource
で定義された具象メソッドを実装しない、メッセージソース実装の基本クラス。AbstractMessageSource
はこのクラスから派生し、メッセージコード解決のための主要テンプレートメソッドに委譲する具体的な getMessage
実装を提供します。
コンストラクターと説明 |
---|
MessageSourceSupport() |
修飾子と型 | メソッドと説明 |
---|---|
protected MessageFormatSE | createMessageFormat(StringSE msg, LocaleSE locale) 指定されたメッセージとロケールの MessageFormat を作成します。 |
protected StringSE | formatMessage(StringSE msg, ObjectSE[] args, LocaleSE locale) キャッシュされた MessageFormats を使用して、指定されたメッセージ文字列をフォーマットします。 |
protected boolean | isAlwaysUseMessageFormat() 常に MessageFormat ルールを適用するかどうかを返し、引数のないメッセージも解析します。 |
protected StringSE | renderDefaultMessage(StringSE defaultMessage, ObjectSE[] args, LocaleSE locale) 指定されたデフォルトのメッセージ文字列をレンダリングします。 |
protected ObjectSE[] | resolveArguments(ObjectSE[] args, LocaleSE locale) 引数オブジェクトを解決するためのテンプレートメソッド。 |
void | setAlwaysUseMessageFormat(boolean alwaysUseMessageFormat) 常に MessageFormat ルールを適用して、引数のないメッセージも解析するかどうかを設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
protected final Log logger
public void setAlwaysUseMessageFormat(boolean alwaysUseMessageFormat)
MessageFormat
ルールを適用して、引数のないメッセージも解析するかどうかを設定します。デフォルトは「false」: 引数のないメッセージは、デフォルトでそのまま MessageFormat を介して解析されずに返されます。これを "true" に設定すると、すべてのメッセージに MessageFormat が適用され、すべてのメッセージテキストが MessageFormat エスケープで書き込まれることが期待されます。
例: MessageFormat は、単一引用符が "''" としてエスケープされると想定しています。引数のプレースホルダーを定義していない場合でも、メッセージテキストがすべてこのようなエスケープで記述されている場合は、このフラグを "true" に設定する必要があります。それ以外の場合、実際の引数を含むメッセージテキストのみが MessageFormat エスケープを使用して書き込まれることになっています。
MessageFormat
SEprotected boolean isAlwaysUseMessageFormat()
protected StringSE renderDefaultMessage(StringSE defaultMessage, @Nullable ObjectSE[] args, LocaleSE locale)
デフォルトの実装では、文字列を formatMessage
に渡し、そこにある引数プレースホルダーを解決します。サブクラスはこのメソッドをオーバーライドして、デフォルトメッセージのカスタム処理をプラグインできます。
defaultMessage
- 渡されたデフォルトのメッセージ文字列 args
- メッセージ内の params に入力される引数の配列。ない場合は null
。locale
- フォーマットに使用されるロケール formatMessage(String, Object[], java.util.Locale)
protected StringSE formatMessage(StringSE msg, @Nullable ObjectSE[] args, LocaleSE locale)
msg
- フォーマットするメッセージ args
- メッセージ内のパラメーターに入力される引数の配列、ない場合は null
locale
- フォーマットに使用されるロケール protected MessageFormatSE createMessageFormat(StringSE msg, LocaleSE locale)
msg
- MessageFormat を作成するためのメッセージ locale
- MessageFormat を作成するロケール