クラス ResourceManager
- java.lang.Object
-
- org.opengion.hayabusa.resource.ResourceManager
-
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つめの、あらかじめ、すべてをキャッシュしておく方法を 採用しています。- 導入されたバージョン:
- JDK5.0,
-
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 ResourceManager(String systemId, String lg, boolean initLoad)コンストラクター システムIDと言語コードを指定して,生成します。
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 voidclear()リソースマネージャーをクリア(初期化)します。voidclear(String key)リソースマネージャーをキーに基づいて部分クリアします。CodeDatagetCodeData(String key)コードキーに対応する、CodeDataオブジェクトを返します。CodeDatagetCodeData(String key, String query)コードリソースから,コード文字列を返します。DBColumngetDBColumn(String key)DBColumn オブジェクトを取得します。StringgetDescription(String key, String... args)ラベルリソースから,概要説明を返します。StringgetDescription(ErrMsg errMsgObj)ErrMsgオブジェクトの内容を元に、ラベルリソースから,概要説明を返します。StringgetLabel(String key, String... args)メッセージリソースから,キーで指定されたメッセージに, 引数で指定された変数値をセットしたメッセージを返します。StringgetLabel(ErrMsg errMsgObj)メッセージリソースから,ErrMsgオブジェクトで指定されたメッセージを返します。LabelDatagetLabelData(String key)ラベルキーに対応する、LabelDataオブジェクトを返します。Map<String,LabelData>getLabelMap(String query, String dbid)指定されたクエリを発行し、ラベルマップを作成します。StringgetLang()設定されている言語を返します。StringgetLongLabel(String key)ラベルリソースから,ラベル(長)を返します。StringgetRawLongLabel(String key)ラベルリソースから,ラベル(長)ををそのままの形で返します。StringgetRawShortLabel(String key, boolean useKey)ラベルオブジェクトの名称(短)をspanタグを付けない状態で返します。StringgetShortErrorMsg(ErrMsg errMsgObj)メッセージリソースから,ErrMsgオブジェクトで指定されたショートメッセージを返します。StringgetShortLabel(String key)ラベルリソースから,ラベル(短)を返します。voidguiClear()GUI情報をクリアします。DBColumnmakeDBColumn(String key)DBColumn オブジェクトを作成します。DBColumnmakeDBColumn(String key, String lbl)DBColumn オブジェクトを作成します。voidmakeGUIInfos(UserInfo user)ログインユーザーで使用する画面オブジェクトを、UserInfoにセットします。
-
-
-
コンストラクタの詳細
-
ResourceManager
public ResourceManager(String systemId, String lg, boolean initLoad)
コンストラクター システムIDと言語コードを指定して,生成します。- パラメータ:
systemId- システムIDlg- 言語コードinitLoad- リソースデータの先読み可否(true:先読みする)
-
-
メソッドの詳細
-
getDBColumn
public DBColumn getDBColumn(String key)
DBColumn オブジェクトを取得します。 作成したDBColumnオブジェクトは,内部にプールしておき,同じオブジェクト要求が あったときは,プールのオブジェクトを利用して,DBColumnを返します。- パラメータ:
key- カラムID(not null)- 戻り値:
- DBColumnオブジェクト
-
makeDBColumn
public DBColumn makeDBColumn(String key)
DBColumn オブジェクトを作成します。 内部にプールに存在すればそれを、なければ新規に作成します。 それでも存在しない場合は、DBColumnConfig より、ラベルと言語を指定して 新規に作成します。- パラメータ:
key- カラムID(not null)- 戻り値:
- DBColumnオブジェクト
- 関連項目:
getDBColumn( String )
-
makeDBColumn
public DBColumn makeDBColumn(String key, String lbl)
DBColumn オブジェクトを作成します。 内部にプールに存在すればそれを、なければ新規に作成します。 それでも存在しない場合は、DBColumnConfig より、ラベルと言語を指定して 新規に作成します。 lbl引数が、nullか、ゼロ文字列の場合は、#makeDBColumn(String) と同じです。- パラメータ:
key- カラムID(not null)lbl- ラベル(nullか、ゼロ文字列の場合は、設定しません)- 戻り値:
- DBColumnオブジェクト
- 関連項目:
getDBColumn( String )
-
getLabel
public String getLabel(String key, String... args)
メッセージリソースから,キーで指定されたメッセージに, 引数で指定された変数値をセットしたメッセージを返します。 このメッセージは,リソースで選ばれたロケール毎のメッセージに, MessageFormat#format でフォーマットする事により,作成されます。 メッセージがリソースに存在しない場合は,キーを返します。- パラメータ:
key- キーargs- メッセージの配列- 戻り値:
- メッセージ(無ければ キー)
-
getShortLabel
public String getShortLabel(String key)
ラベルリソースから,ラベル(短)を返します。 引数の言語コードに応じたリソースが登録されていない場合は, 引数のラベルキーそのまま返します。- パラメータ:
key- ラベルキー- 戻り値:
- リソースに応じたラベル文字列(無ければ ラベルキー)
-
getLongLabel
public String getLongLabel(String key)
ラベルリソースから,ラベル(長)を返します。 概要説明が存在する場合は、ツールチップに概要説明が 表示されます。 引数の言語コードに応じたリソースが登録されていない場合は, 引数のラベルキーそのまま返します。- パラメータ:
key- ラベルキー- 戻り値:
- リソースに応じたラベル(長)文字列(無ければ ラベルキー)
-
getRawLongLabel
public String getRawLongLabel(String key)
ラベルリソースから,ラベル(長)ををそのままの形で返します。 (discription等を付けない) 表示されます。 引数の言語コードに応じたリソースが登録されていない場合は, 引数のラベルキーそのまま返します。- パラメータ:
key- ラベルキー- 戻り値:
- リソースに応じたラベル(長)そのままの文字列(無ければ ラベルキー)
-
getRawShortLabel
public String getRawShortLabel(String key, boolean useKey)
ラベルオブジェクトの名称(短)をspanタグを付けない状態で返します。 SNAMEが未設定の場合は、LNAME が返されます。 引数の言語コードに応じたリソースが登録されていない場合は, 引数のラベルキーそのまま返します。- パラメータ:
key- ラベルキーuseKey- null時にキーを返す場合は、true , 空文字を返す場合は、false- 戻り値:
- リソースに応じたラベル(短)文字列(無ければ ラベルキー)
-
getDescription
public String getDescription(String key, String... args)
ラベルリソースから,概要説明を返します。 {0},{1}...の置換えを行います。 キーのデータが存在しない場合はnullを返します。 ただし、パラメータのデータがあれば、それを返します。- パラメータ:
key- ラベルキーargs- パラメータ配列(可変長引数)- 戻り値:
- リソースに応じた概要説明(無ければ null)
-
getLabel
public String getLabel(ErrMsg errMsgObj)
メッセージリソースから,ErrMsgオブジェクトで指定されたメッセージを返します。 このエラーメッセージは,リソースで選ばれたロケール毎のメッセージに, MessageFormat#format でフォーマットする事により,作成されます。 エラーメッセージがリソースに存在しない場合は,エラーコードを返します。- パラメータ:
errMsgObj- ErrMsgオブジェクト- 戻り値:
- エラーメッセージ(無ければ ErrMsgオブジェクトの toString() )
-
getShortErrorMsg
public String getShortErrorMsg(ErrMsg errMsgObj)
メッセージリソースから,ErrMsgオブジェクトで指定されたショートメッセージを返します。 このエラーメッセージは,リソースで選ばれたロケール毎のメッセージに, MessageFormat#format でフォーマットする事により,作成されます。 エラーメッセージがリソースに存在しない場合は,エラーコードを返します。- パラメータ:
errMsgObj- ErrMsgオブジェクト- 戻り値:
- エラーメッセージ(無ければ ErrMsgオブジェクトの toString() )
-
getDescription
public String getDescription(ErrMsg errMsgObj)
ErrMsgオブジェクトの内容を元に、ラベルリソースから,概要説明を返します。 キーのデータが存在しない場合はnullを返します。- パラメータ:
errMsgObj- ErrMsgオブジェクト- 戻り値:
- エラーメッセージ(キーが無ければnull)
-
getLabelData
public LabelData getLabelData(String key)
ラベルキーに対応する、LabelDataオブジェクトを返します。- パラメータ:
key- ラベルキー- 戻り値:
- LabelDataオブジェクト
-
getCodeData
public CodeData getCodeData(String key)
コードキーに対応する、CodeDataオブジェクトを返します。- パラメータ:
key- コードキー- 戻り値:
- CodeDataオブジェクト(無ければ null)
-
getCodeData
public CodeData getCodeData(String key, String query)
コードリソースから,コード文字列を返します。 引数にQUERYを渡すことで、DBから、動的にコードリソースを作成できます。- パラメータ:
key- コードキーquery- 検索SQL(引数に、? を一つ持つ)- 戻り値:
- コードデータオブジェクト(無ければ null)
-
makeGUIInfos
public void makeGUIInfos(UserInfo user)
ログインユーザーで使用する画面オブジェクトを、UserInfoにセットします。 各、UserInfo は、自分自身が使用する 画面オブジェクトのみを管理することで、 画面アクセス有無を、すばやく検索することが可能になります。- パラメータ:
user- 指定のユーザーロールに対応する画面だけをMapにセットする。
-
getLabelMap
public Map<String,LabelData> getLabelMap(String query, String dbid)
指定されたクエリを発行し、ラベルマップを作成します。- パラメータ:
query- ラベルマップを作成するクエリdbid- 接続先ID- 戻り値:
- ラベルマップ
- 関連項目:
LabelDataLoader.getLabelMap( String,String )
-
clear
public void clear(String key)
リソースマネージャーをキーに基づいて部分クリアします。 ここでは、部分クリアなため、GUIData に関しては、処理されません。 また、存在しないキーを指定されたリソースは、何も処理されません。- パラメータ:
key- カラムのキー
-
guiClear
public void guiClear()
GUI情報をクリアします。 ここでは、関連するラベル、コードリソースの部分クリアも行います。 GUI情報は、シーケンスに管理しているため、この処理1回ごとに、 GUIData を全件再読み込みを行いますので、ご注意ください。
-
clear
public void clear()
リソースマネージャーをクリア(初期化)します。
-
-