|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectorg.springframework.context.support.MessageSourceSupport
org.springframework.context.support.AbstractMessageSource
jp.terasoluna.fw.message.DataSourceMessageSource
public class DataSourceMessageSource
DAOから取得したメッセージリソースより、メッセージコード及びロケールをキー として、メッセージもしくはメッセージフォーマットを決定するクラス。
本クラスはクラスロード時にDBを参照し、DB中のメッセージリソースからメッセージ もしくはメッセージフォーマットを決定するクラスである。 また、国際化に対応しており、言語コード、国コード、バリアントコードによる ロケール判別が可能である。
使用方法
<bean id = "messageSource"
class = "jp.terasoluna.fw.message.DataSourceMessageSource">
<property name = "DBMessageResourceDAO">
<ref bean = "dBMessageResourceDAO"></ref>
</property>
</bean>
解説
<bean id = "messageSource"
class = "jp.terasoluna.fw.message.DataSourceMessageSource">
<property name = "DBMessageResourceDAO">
<ref bean = "dBMessageResourceDAO"></ref>
</property>
<property name = "defaultLocale">
<value>ja</value>
</property>
</bean>
解説
DBMessage,
DBMessageQuery,
DBMessageResourceDAO,
DBMessageResourceDAOImpl| フィールドの概要 | |
|---|---|
protected Map<Locale,Properties> |
cachedMergedProperties
ロケール毎にメッセージコードとメッセージをマップで保持する。 |
protected Map<String,Map<Locale,MessageFormat>> |
cachedMessageFormats
メッセージコード毎にロケールとメッセージフォーマットをマップで保持する。 |
protected DBMessageResourceDAO |
dbMessageResourceDAO
メッセージリソースを取得するDAO。 |
protected Locale |
defaultLocale
ロケールが指定されていない場合のデフォルトロケール。 |
| クラス org.springframework.context.support.MessageSourceSupport から継承されたフィールド |
|---|
logger |
| コンストラクタの概要 | |
|---|---|
DataSourceMessageSource()
|
|
| メソッドの概要 | |
|---|---|
void |
afterPropertiesSet()
Webアプリケーションコンテキスト起動時に実行される。 |
protected Locale |
createLocale(DBMessage message)
Localeオブジェクトを生成する。 |
protected List<Locale> |
getAlternativeLocales(Locale locale)
メッセージを決定する際のキーを生成する。 |
protected MessageFormat |
getMessageFormat(String code,
Locale locale)
引数として渡されたメッセージコードとロケールからメッセージフォーマット を決定する。 |
protected Properties |
getMessages(Locale locale)
ロケールに対応する全てのメッセージを返却する。 |
protected String |
internalResolveCodeWithoutArguments(String code,
Locale locale)
メッセージコードとロケールからメッセージを決定する。 |
protected void |
mapMessage(DBMessage message)
メッセージリソースをロケール別に整理し、メッセージコードとメッセージ本体 をセットにして、ハッシュテーブルに格納する。 |
protected void |
readMessagesFromDataSource()
DAOからメッセージリソースを取得し、整理する。 |
void |
reloadDataSourceMessage()
メッセージリソースをリロードする。 |
protected MessageFormat |
resolveCode(String code,
Locale locale)
引数として渡されたメッセージコードとロケールからメッセージフォーマットを 決定し、メッセージフォーマットを返却する。 |
protected String |
resolveCodeWithoutArguments(String code,
Locale locale)
引数として渡されたメッセージコードとロケールからメッセージを決定し、 メッセージを返却する。 |
void |
setDbMessageResourceDAO(DBMessageResourceDAO dbMessageResourceDAO)
DBMessageResourceDAOを設定する。 |
void |
setDefaultLocale(Locale defaultLocale)
デフォルトロケールを設定する。 |
| クラス org.springframework.context.support.AbstractMessageSource から継承されたメソッド |
|---|
getDefaultMessage, getMessage, getMessage, getMessage, getMessageFromParent, getMessageInternal, getParentMessageSource, isUseCodeAsDefaultMessage, renderDefaultMessage, resolveArguments, setParentMessageSource, setUseCodeAsDefaultMessage |
| クラス org.springframework.context.support.MessageSourceSupport から継承されたメソッド |
|---|
createMessageFormat, formatMessage, isAlwaysUseMessageFormat, setAlwaysUseMessageFormat |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
|---|
protected final Map<String,Map<Locale,MessageFormat>> cachedMessageFormats
protected Map<Locale,Properties> cachedMergedProperties
protected Locale defaultLocale
protected DBMessageResourceDAO dbMessageResourceDAO
| コンストラクタの詳細 |
|---|
public DataSourceMessageSource()
| メソッドの詳細 |
|---|
public void setDefaultLocale(Locale defaultLocale)
defaultLocale - デフォルトのロケール。AbstractMessageSource.getMessageInternal(java.lang.String, java.lang.Object[], java.util.Locale),
Locale.getDefault()public void setDbMessageResourceDAO(DBMessageResourceDAO dbMessageResourceDAO)
dbMessageResourceDAO - 全てのメッセージリソースを取得するDAOpublic void afterPropertiesSet()
org.springframework.beans.factory.InitializingBean 内の afterPropertiesSetcachedMergedPropertiespublic void reloadDataSourceMessage()
protected void readMessagesFromDataSource()
protected void mapMessage(DBMessage message)
message - メッセージリソースを格納したDBMessageオブジェクト。protected Locale createLocale(DBMessage message)
message - メッセージリソース
IllegalArgumentException - メッセージコード及びメッセージが存在するメッセージリソースに
ロケールが設定されていない。かつ、デフォルトロケールも設定出来ない
場合のエラー。protected Properties getMessages(Locale locale)
locale - メッセージのロケール。
protected String resolveCodeWithoutArguments(String code,
Locale locale)
org.springframework.context.support.AbstractMessageSource 内の resolveCodeWithoutArgumentscode - メッセージコードlocale - メッセージのロケール
protected String internalResolveCodeWithoutArguments(String code,
Locale locale)
code - メッセージコードlocale - メッセージのロケール
protected List<Locale> getAlternativeLocales(Locale locale)
locale - ロケールオブジェクト
protected MessageFormat resolveCode(String code,
Locale locale)
org.springframework.context.support.AbstractMessageSource 内の resolveCodecode - メッセージコードlocale - メッセージのロケール
protected MessageFormat getMessageFormat(String code,
Locale locale)
code - メッセージコードlocale - メッセージのロケール
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||