public final class ResourceManager extends 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(String systemId,
String lg,
boolean initLoad)
コンストラクター
システムIDと言語コードを指定して,生成します。
|
修飾子とタイプ | メソッドと説明 |
---|---|
void |
clear()
リソースマネージャーをクリア(初期化)します。
|
void |
clear(String key)
リソースマネージャーをキーに基づいて部分クリアします。
|
CodeData |
getCodeData(String key)
コードキーに対応する、CodeDataオブジェクトを返します。
|
CodeData |
getCodeData(String key,
String query)
コードリソースから,コード文字列を返します。
|
DBColumn |
getDBColumn(String key)
DBColumn オブジェクトを取得します。
|
String |
getDescription(ErrMsg errMsgObj)
ErrMsgオブジェクトの内容を元に、ラベルリソースから,概要説明を返します。
|
String |
getDescription(String key)
ラベルリソースから,概要説明を返します。
|
String |
getDescription(String key,
String[] args)
ラベルリソースから,概要説明を返します。
|
String |
getLabel(ErrMsg errMsgObj)
メッセージリソースから,ErrMsgオブジェクトで指定されたメッセージを返します。
|
String |
getLabel(String key)
ラベルリソースから,ラベルを返します。
|
String |
getLabel(String key,
String[] args)
メッセージリソースから,キーで指定されたメッセージに,
引数で指定された変数値をセットしたメッセージを返します。
|
LabelData |
getLabelData(String key)
ラベルキーに対応する、LabelDataオブジェクトを返します。
|
Map |
getLabelMap(String query,
String dbid)
指定されたクエリを発行し、ラベルマップを作成します。
|
String |
getLang()
設定されている言語を返します。
|
String |
getLongLabel(String key)
ラベルリソースから,ラベル(長)を返します。
|
String |
getRawShortLabel(String key)
ラベルオブジェクトの名称(短)をspanタグを付けない状態で返します。
|
String |
getShortLabel(String key)
ラベルリソースから,ラベル(短)を返します。
|
void |
guiClear()
GUI情報をクリアします。
|
DBColumn |
makeDBColumn(String key)
DBColumn オブジェクトを作成します。
|
void |
makeGUIInfos(UserInfo user)
ログインユーザーで使用する画面オブジェクトを、UserInfoにセットします。
|
void |
setDBColumn(String key,
DBColumn dbColumn)
DBColumn オブジェクトをプールに登録します。
|
public String getLang()
public DBColumn getDBColumn(String key)
key
- カラムID(not null)3.4.0.0 (2003/09/01) ラベルカラム、コードカラム、表示パラメータ、編集パラメータ、文字パラメータの追加。 |
3.5.6.4 (2004/07/16) 追加パラメータ取り込み時に、"_" は、null 扱いとする。 |
3.6.0.7 (2004/11/06) DBColumn の official属性追加 |
6.4.3.3 (2016/03/04) ConcurrentHashMap の not null制限のチェック追加 |
public DBColumn makeDBColumn(String key)
key
- カラムID(not null)getDBColumn( String )
public void setDBColumn(String key, DBColumn dbColumn)
key
- カラムIDdbColumn
- DBColumnオブジェクト5.4.2.2 (2011/12/14) 新規追加 |
public String getLabel(String key)
key
- ラベルキー4.0.0.0 (2005/01/31) オラクルとWindowsとの間の "~"の文字化け対策中止 |
4.0.0.0 (2007/10/18) メッセージリソースとの統合化 |
6.3.9.0 (2015/11/06) labelLoader.getLabelDataは、nullを返しません。 |
public String getLabel(String key, String[] args)
key
- キーargs
- メッセージの配列4.0.0.0 (2005/01/31) オラクルとWindowsとの間の "~"の文字化け対策 |
4.0.0.0 (2007/10/17) メッセージリソース統合に伴いラベルローダーを使用する |
4.0.0.0 (2007/10/18) 名称変更 getMessage ⇒ getLabel |
5.1.1.0 (2009/12/01) #XXXXの変換で、カラム名が複数指定されている場合の対応 |
6.1.0.0 (2014/12/26) LabelData が存在しなかった場合の処理 |
6.3.9.0 (2015/11/06) labelLoader.getLabelDataは、nullを返しません。 |
6.6.0.0 (2016/12/01) 引数の配列を可変長配列に変更します。 |
public String getLabel(ErrMsg errMsgObj)
errMsgObj
- ErrMsgオブジェクト4.0.0.0 (2004/12/31) 新規追加 |
4.0.0.0 (2007/10/18) メッセージリソースとの統合化 |
public String getShortLabel(String key)
key
- ラベルキー4.3.3.0 (2008/10/01) 新規作成 |
6.3.9.0 (2015/11/06) labelLoader.getLabelDataは、nullを返しません。 |
public String getLongLabel(String key)
key
- ラベルキー6.3.8.4 (2015/10/09) #XXXX %S などの対応。getLabel(String) は汎用過ぎるので、少し分ける。 |
6.3.9.0 (2015/11/06) labelLoader.getLabelDataは、nullを返しません。 |
public String getRawShortLabel(String key)
key
- ラベルキー6.3.8.4 (2015/10/09) #XXXX %S などの対応。getLabel(String) は汎用過ぎるので、少し分ける。 |
6.3.9.0 (2015/11/06) labelLoader.getLabelDataは、nullを返しません。 |
public String getDescription(String key)
key
- ラベルキー4.3.4.5 (2009/01/08) 新規作成 |
6.3.9.0 (2015/11/06) labelLoader.getLabelDataは、nullを返しません。 |
public String getDescription(String key, String[] args)
key
- ラベルキーargs
- パラメータ配列(可変長引数)4.3.7.6 (2009/07/15) 新規作成 |
6.1.0.0 (2014/12/26) #XXXXの変換で、カラム名が複数指定されている場合の対応 |
6.3.9.0 (2015/11/06) labelLoader.getLabelDataは、nullを返しません。 |
public String getDescription(ErrMsg errMsgObj)
errMsgObj
- ErrMsgオブジェクト4.3.7.6 (2009/07/15) 新規作成 |
public LabelData getLabelData(String key)
key
- ラベルキー
// * @return LabelDataオブジェクト(無ければ null)4.0.0.0 (2005/01/31) 新規作成 |
6.3.9.0 (2015/11/06) labelLoader.getLabelDataは、nullを返しません。 |
public CodeData getCodeData(String key)
key
- コードキーpublic CodeData getCodeData(String key, String query)
key
- コードキーquery
- 検索SQL(引数に、? を一つ持つ)5.4.2.2 (2011/12/14) 新規追加。 |
public void makeGUIInfos(UserInfo user)
user
- 指定のユーザーロールに対応する画面だけをMapにセットする。3.1.0.1 (2003/03/26) GUIInfo のキー順サポートの為に、引数追加。 |
4.0.0.0 (2005/01/31) 使用画面のMap を UserInfo にセットします。 |
4.3.0.0 (2008/07/04) ロールモードマルチ対応 |
5.2.0.0 (2010/09/01) アクセス禁止アドレスによる不正アクセス防止機能追加 |
6.4.3.4 (2016/03/11) forループを、removeAll メソッドに置き換えます。 |
6.4.4.2 (2016/04/01) guiMap.values() では、GUIInfo だが、remove するのは、gui.getAddress() の値。 |
public Map getLabelMap(String query, String dbid)
query
- ラベルマップを作成するクエリdbid
- 接続先IDLabelDataLoader.getLabelMap( String,String )
4.3.4.0 (2008/12/01) 新規作成 |
6.4.0.5 (2016/01/09) useLabelMap="true" 時のSQL文の実行は、dbid を使用して行う。 |
public void clear(String key)
key
- カラムのキー5.4.3.4 (2012/01/12) labelPool の削除追加 |
6.4.3.3 (2016/03/04) ConcurrentHashMap の not null制限のチェック追加 |
public void guiClear()
public void clear()
5.4.3.4 (2012/01/12) labelPool の削除追加 |
Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.