public final class ResourceManager
extends java.lang.Object
java.util.ResourceBundle クラスを複数管理するリソースクラスです。
ResourceManager は、
LabelResource.properties ラベルリソース(テーブル定義やカラム名などの画面に表示するリソース)
CodeResource.properties コードリソース(選択データなどプルダウンメニューで選択するリソース)
MessageResource.properties メッセージリソース(エラーコードやメッセージなどを表示するリソース)
の3つのプロパティーファイルを内部に持っており,それぞれのメソッドにより,
リソースの返す値を決めています。
ResourceManagerは,単独でも生成できますが,各ユーザー毎に作成するよりも
ResourceFactory#newInstance( lang )メソッドより生成した方が,プーリングされるので
効率的です。
リソース作成時に指定するロケールは,ISO 言語コード(ISO-639 で定義される 2 桁の小文字)
http://www.ics.uci.edu/pub/ietf/http/related/iso639.txtを使用して下さい。
ただし,内部的に Locale を構築していますが,その正しさは,チェックされていませんので,
指定するロケールに応じた properties ファイルを用意しておいて下さい。
日本語の場合は, 言語コードは "jp" なので,
LabelResource_jp.properties ラベルリソース(日本語)
CodeResource_jp.properties コードリソース(日本語)
MessageResource_jp.properties メッセージリソース(日本語)
を用意して下さい。
CodeResource については、リソースファイルから CodeSelectionオブジェクトを
作成して利用します。この、CodeSelectionオブジェクトの作成方法として、
3通り考えられます。
1つ目は、毎回 要求が発生する毎に CodeSelection を作成し、プールしていきます。こうすることで、
初めて使用されたときだけオブジェクト化されますので、メモリの節約が可能です。ただし、
プールにヒットしなかった場合は、やはりリソースから検索しますので、元々ヒットしない
キーに対しては、毎回リソースを検索するため、非効率です。
2つめは、元々ヒットしないキーに対して、NullCodeSelectionオブジェクトを登録しておくことで、
プールにため込んで行くと言う方法です。この場合は、シングルトーンにしてメモリを節約しますが、
それでもプール自体の容量は、確保しておく必要があります。
3つめは、この ResourceManager がインスタンス化されるときに、すべての CodeSelectionオブジェクトを
あらかじめ プールしておく方法です。使わない CodeSelection もインスタンス化する変わりに、
キャッシュにヒットしない場合は、即 CodeSelection が存在しないと判断できるため、
もっともパフォーマンスが高くなります。
本 ResourceManager の実装は、3つめの、あらかじめ、すべてをキャッシュしておく方法を
採用しています。| コンストラクタと説明 |
|---|
ResourceManager(java.lang.String systemId,
java.lang.String lg,
boolean initLoad)
コンストラクター
システムIDと言語コードを指定して,生成します。
|
| 修飾子とタイプ | メソッドと説明 |
|---|---|
void |
clear()
リソースマネージャーをクリア(初期化)します。
|
void |
clear(java.lang.String key)
リソースマネージャーをキーに基づいて部分クリアします。
|
CodeData |
getCodeData(java.lang.String key)
コードキーに対応する、CodeDataオブジェクトを返します。
|
CodeData |
getCodeData(java.lang.String key,
java.lang.String query)
コードリソースから,コード文字列を返します。
|
DBColumn |
getDBColumn(java.lang.String key)
DBColumn オブジェクトを取得します。
|
java.lang.String |
getDescription(ErrMsg errMsgObj)
ErrMsgオブジェクトの内容を元に、ラベルリソースから,概要説明を返します。
|
java.lang.String |
getDescription(java.lang.String key,
java.lang.String[] args)
ラベルリソースから,概要説明を返します。
|
java.lang.String |
getLabel(ErrMsg errMsgObj)
メッセージリソースから,ErrMsgオブジェクトで指定されたメッセージを返します。
|
java.lang.String |
getLabel(java.lang.String key,
java.lang.String[] args)
メッセージリソースから,キーで指定されたメッセージに,
引数で指定された変数値をセットしたメッセージを返します。
|
LabelData |
getLabelData(java.lang.String key)
ラベルキーに対応する、LabelDataオブジェクトを返します。
|
java.util.Map |
getLabelMap(java.lang.String query,
java.lang.String dbid)
指定されたクエリを発行し、ラベルマップを作成します。
|
java.lang.String |
getLang()
設定されている言語を返します。
|
java.lang.String |
getLongLabel(java.lang.String key)
ラベルリソースから,ラベル(長)を返します。
|
java.lang.String |
getRawShortLabel(ErrMsg errMsgObj)
メッセージリソースから,ErrMsgオブジェクトで指定されたショートメッセージを返します。
|
java.lang.String |
getRawShortLabel(java.lang.String key,
java.lang.String[] args)
ラベルオブジェクトの名称(短)をspanタグを付けない状態で返します。
|
java.lang.String |
getShortLabel(java.lang.String key)
ラベルリソースから,ラベル(短)を返します。
|
void |
guiClear()
GUI情報をクリアします。
|
DBColumn |
makeDBColumn(java.lang.String key)
DBColumn オブジェクトを作成します。
|
DBColumn |
makeDBColumn(java.lang.String key,
java.lang.String lbl)
DBColumn オブジェクトを作成します。
|
void |
makeGUIInfos(UserInfo user)
ログインユーザーで使用する画面オブジェクトを、UserInfoにセットします。
|
void |
setDBColumn(java.lang.String key,
DBColumn dbColumn)
DBColumn オブジェクトをプールに登録します。
|
public ResourceManager(java.lang.String systemId,
java.lang.String lg,
boolean initLoad)
systemId - システムIDlg - 言語コードinitLoad - リソースデータの先読み可否(true:先読みする)public java.lang.String getLang()
public DBColumn getDBColumn(java.lang.String key)
key - カラムID(not null)public DBColumn makeDBColumn(java.lang.String key)
key - カラムID(not null)getDBColumn( String )public DBColumn makeDBColumn(java.lang.String key, java.lang.String lbl)
key - カラムID(not null)lbl - ラベル(nullか、ゼロ文字列の場合は、設定しません)getDBColumn( String )public void setDBColumn(java.lang.String key,
DBColumn dbColumn)
key - カラムIDdbColumn - DBColumnオブジェクトpublic java.lang.String getLabel(java.lang.String key,
java.lang.String[] args)
key - キーargs - メッセージの配列public java.lang.String getShortLabel(java.lang.String key)
key - ラベルキーpublic java.lang.String getLongLabel(java.lang.String key)
key - ラベルキーpublic java.lang.String getRawShortLabel(java.lang.String key,
java.lang.String[] args)
key - ラベルキーargs - パラメータ配列(可変長引数)public java.lang.String getDescription(java.lang.String key,
java.lang.String[] args)
key - ラベルキーargs - パラメータ配列(可変長引数)public java.lang.String getLabel(ErrMsg errMsgObj)
errMsgObj - ErrMsgオブジェクトpublic java.lang.String getRawShortLabel(ErrMsg errMsgObj)
errMsgObj - ErrMsgオブジェクトpublic java.lang.String getDescription(ErrMsg errMsgObj)
errMsgObj - ErrMsgオブジェクトpublic LabelData getLabelData(java.lang.String key)
key - ラベルキーpublic CodeData getCodeData(java.lang.String key)
key - コードキーpublic CodeData getCodeData(java.lang.String key, java.lang.String query)
key - コードキーquery - 検索SQL(引数に、? を一つ持つ)public void makeGUIInfos(UserInfo user)
user - 指定のユーザーロールに対応する画面だけをMapにセットする。public java.util.Map getLabelMap(java.lang.String query,
java.lang.String dbid)
query - ラベルマップを作成するクエリdbid - 接続先IDLabelDataLoader.getLabelMap( String,String )public void clear(java.lang.String key)
key - カラムのキーpublic void guiClear()
public void clear()
Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.