package org.itscool.weber.mapping;

import java.util.HashMap;

/**
 * &lt;role&gt;要素の情報を保持する配列クラスです<BR>
 * <BR>
 * このクラスは次のキーと値の配列で管理されます<BR>
 * 　キー：ユーザ情報ファイルの論理名(name)<BR>
 * 　値  ：ユーザ情報ファイルが保存されているパス(path)<BR>
 *
 * <br/><p><strong>3) message-config.xml </strong></p>
 * <!-- 概要 -->
 * <p>
 * weberフレームワークはメッセージの定義をXMLで記述したファイルとして登録しておくことで、
 * weberアプリケーションの任意のクラスからメッセージを取得することができます。<br/>
 * 又、アクションマッピング定義のバリデーション機能から利用することも可能です。<br/>
 * メッセージ定義ファイルは以下のようなXMLファイル(message-config.xml)を作成し、
 * クラスファイルを保管しているディレクトリ配下（/WEB-INF/classes直下等）に保存します。</a>
 * </p>
 * 
 * <br/><p><strong>(1) message-config.xmlファイルの記述例</strong></p>
 * <div id="area">
 * <pre>
 * &lt;?xml version="1.0" encoding="Shift_JIS" ?&gt;
 * 
 * &lt;weber-message&gt;
 *   &lt;messages&gt;
 *     &lt;message key="E0001" value="名前を入力してください"/&gt;
 *     &lt;message key="E0002" value="学生Noを入力してください"/&gt;
 *     &lt;message key="E0003" value="学生IDには数値を入力してください"/&gt;
 *     &lt;message key="E0004" value="成績を入力してください"/&gt;
 *     &lt;message key="E0005" value="成績には数値を入力してください"/&gt;
 *     &lt;message key="E0006" value="成績には0.00から100.00までの数値を入力してください"/&gt;
 *   &lt;/messages&gt;
 * &lt;/weber-message&gt;
 * </pre>
 * </div>
 * 
 * <br/>
 * 
 * <p>
 * 又、上記で作成したファイルをフレームワークが読み取る為にはdi-config.xmlに
 * 以下の設定を記述する必要があります。<br/>
 * </p>
 * 
 * <br/>
 * 
 * <div id="area">
 * <pre>
 * &lt;bean id="InitParams" type="org.itscool.commons.bean.InitParamMap" singleton="true"&gt;
 *     &lt;property name="infos" collection="map"&gt;
 *         &lt;!-- メッセージ定義ファイル名 --&gt;
 *         &lt;bean id="message-config" value="message-config.xml"/&gt;
 *     &lt;/property&gt;
 * &lt;/bean&gt;
 * </pre>
 * </div>
 * 
 * <br/>
 * 
 * <p>
 * &lt;bean id="MessageConfigReader"?&gt;以下の記述は、di-config.xmlの
 * &lt;bean-mappings&gt;?&lt;/bean-mappings&gt;の間に記述してください。<br/>
 * </p>
 * 
 * <br/>
 * 
 * <br/><p><strong>(2) メッセージの取得について</strong></p>
 * <p>
 * メッセージ定義ファイルからメッセージを取得するには
 * org.itscool.weber.mapping.MessageMappingクラスのgetメソッドを使ってメッセージ
 * を取得します。<br/>
 * </p>
 * 
 * <div id="area">
 * MessageMapping  resource = MessageMapping.getInstance()
 * String msg = (String)resource.get(“E0001”);
 * </div>
 * 
 * @author KANO
 * @since jdk1.4.1
 * @version 1.00A 2004/11/1
*/
public class MessageMappings extends HashMap{
    /** 唯一のMessageMappingsインスタンス */
    private static MessageMappings instance;
    
    /**
     * 唯一のMessageMappingsインスタンスを取得します
     * @return MessageMappingsインスタンス
    */
    public static synchronized MessageMappings getInstance(){
        if( instance == null ){
            instance = new MessageMappings();
        }
        return instance;
    }
}
