|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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
内の afterPropertiesSet
cachedMergedProperties
public 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
内の resolveCodeWithoutArguments
code
- メッセージコード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
内の resolveCode
code
- メッセージコードlocale
- メッセージのロケール
protected MessageFormat getMessageFormat(String code, Locale locale)
code
- メッセージコードlocale
- メッセージのロケール
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |