| 
 | ||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectorg.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  java.util.Map<java.util.Locale,java.util.Properties> | cachedMergedPropertiesロケール毎にメッセージコードとメッセージをマップで保持する。 | 
| protected  java.util.Map<java.lang.String,java.util.Map<java.util.Locale,java.text.MessageFormat>> | cachedMessageFormatsメッセージコード毎にロケールとメッセージフォーマットをマップで保持する。 | 
| protected  DBMessageResourceDAO | dbMessageResourceDAOメッセージリソースを取得するDAO。 | 
| protected  java.util.Locale | defaultLocaleロケールが指定されていない場合のデフォルトロケール。 | 
| private static org.apache.commons.logging.Log | logログクラス。 | 
| クラス org.springframework.context.support.AbstractMessageSource から継承されたフィールド | 
|---|
| logger | 
| コンストラクタの概要 | |
|---|---|
| DataSourceMessageSource() | |
| メソッドの概要 | |
|---|---|
|  void | afterPropertiesSet()Webアプリケーションコンテキスト起動時に実行される。 | 
| protected  java.util.Locale | createLocale(DBMessage message)Localeオブジェクトを生成する。 | 
| protected  java.util.List<java.util.Locale> | getAlternativeLocales(java.util.Locale locale)メッセージを決定する際のキーを生成する。 | 
| protected  java.text.MessageFormat | getMessageFormat(java.lang.String code,
                 java.util.Locale locale)引数として渡されたメッセージコードとロケールからメッセージフォーマット を決定する。 | 
| protected  java.util.Properties | getMessages(java.util.Locale locale)ロケールに対応する全てのメッセージを返却する。 | 
| protected  java.lang.String | internalResolveCodeWithoutArguments(java.lang.String code,
                                    java.util.Locale locale)メッセージコードとロケールからメッセージを決定する。 | 
| protected  void | mapMessage(DBMessage message)メッセージリソースをロケール別に整理し、メッセージコードとメッセージ本体 をセットにして、ハッシュテーブルに格納する。 | 
| protected  void | readMessagesFromDataSource()DAOからメッセージリソースを取得し、整理する。 | 
|  void | reloadDataSourceMessage()メッセージリソースをリロードする。 | 
| protected  java.text.MessageFormat | resolveCode(java.lang.String code,
            java.util.Locale locale)引数として渡されたメッセージコードとロケールからメッセージフォーマットを 決定し、メッセージフォーマットを返却する。 | 
| protected  java.lang.String | resolveCodeWithoutArguments(java.lang.String code,
                            java.util.Locale locale)引数として渡されたメッセージコードとロケールからメッセージを決定し、 メッセージを返却する。 | 
|  void | setDbMessageResourceDAO(DBMessageResourceDAO dbMessageResourceDAO)DBMessageResourceDAOを設定する。 | 
|  void | setDefaultLocale(java.util.Locale defaultLocale)デフォルトロケールを設定する。 | 
| クラス org.springframework.context.support.AbstractMessageSource から継承されたメソッド | 
|---|
| createMessageFormat, formatMessage, getDefaultMessage, getMessage, getMessage, getMessage, getMessageFromParent, getMessageInternal, getParentMessageSource, isAlwaysUseMessageFormat, isUseCodeAsDefaultMessage, renderDefaultMessage, resolveArguments, setAlwaysUseMessageFormat, setParentMessageSource, setUseCodeAsDefaultMessage | 
| クラス java.lang.Object から継承されたメソッド | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| フィールドの詳細 | 
|---|
protected final java.util.Map<java.lang.String,java.util.Map<java.util.Locale,java.text.MessageFormat>> cachedMessageFormats
protected java.util.Map<java.util.Locale,java.util.Properties> cachedMergedProperties
private static org.apache.commons.logging.Log log
protected java.util.Locale defaultLocale
protected DBMessageResourceDAO dbMessageResourceDAO
| コンストラクタの詳細 | 
|---|
public DataSourceMessageSource()
| メソッドの詳細 | 
|---|
public void setDefaultLocale(java.util.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 java.util.Locale createLocale(DBMessage message)
message - メッセージリソース
java.lang.IllegalArgumentException - メッセージコード及びメッセージが存在するメッセージリソースに
      ロケールが設定されていない。かつ、デフォルトロケールも設定出来ない
      場合のエラー。protected java.util.Properties getMessages(java.util.Locale locale)
locale - メッセージのロケール。
protected java.lang.String resolveCodeWithoutArguments(java.lang.String code,
                                                       java.util.Locale locale)
org.springframework.context.support.AbstractMessageSource 内の resolveCodeWithoutArgumentscode - メッセージコードlocale - メッセージのロケール
protected java.lang.String internalResolveCodeWithoutArguments(java.lang.String code,
                                                               java.util.Locale locale)
code - メッセージコードlocale - メッセージのロケール
protected java.util.List<java.util.Locale> getAlternativeLocales(java.util.Locale locale)
locale - ロケールオブジェクト
protected java.text.MessageFormat resolveCode(java.lang.String code,
                                              java.util.Locale locale)
org.springframework.context.support.AbstractMessageSource 内の resolveCodecode - メッセージコードlocale - メッセージのロケール
protected java.text.MessageFormat getMessageFormat(java.lang.String code,
                                                   java.util.Locale locale)
code - メッセージコードlocale - メッセージのロケール
| 
 | ||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||