openGionopenGion
5.5.6.0

org.opengion.hayabusa.resource
クラス ResourceManager

java.lang.Object
  上位を拡張 org.opengion.hayabusa.resource.ResourceManager

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つめの、あらかじめ、すべてをキャッシュしておく方法を
 採用しています。

機能階層
リソース管理
バージョン
4.0
作成者
Kazuhiko Hasegawa
導入されたバージョン:
JDK5.0,

コンストラクタの概要
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 getCodeData(java.lang.String key, java.lang.String query)
          コードリソースから,コード文字列を返します。
 DBColumn getDBColumn(java.lang.String key)
          DBColumn オブジェクトを取得します。
 java.lang.String getDescription(ErrMsg errMsg)
          ラベルリソースから,概要説明を返します。
 java.lang.String getDescription(java.lang.String key)
          ラベルリソースから,概要説明を返します。
 java.lang.String getDescription(java.lang.String key, java.lang.String[] args)
          ラベルリソースから,概要説明を返します。
 java.lang.String getLabel(ErrMsg errMsg)
          メッセージリソースから,ErrMsgオブジェクトで指定されたメッセージを返します。
 java.lang.String getLabel(java.lang.String key)
          ラベルリソースから,ラベルを返します。
 java.lang.String getLabel(java.lang.String key, java.lang.String[] args)
          メッセージリソースから,キーで指定されたメッセージに, 引数で指定された変数値をセットしたメッセージを返します。
 LabelData getLabelData(java.lang.String key)
          ラベルリソースから,ラベルを返します。
 java.util.Map<java.lang.String,LabelData> getLabelMap(java.lang.String query)
          指定されたクエリを発行し、ラベルマップを作成します。
 java.lang.String getLang()
          設定されている言語を返します。
 java.lang.String getShortLabel(java.lang.String key)
          ラベルリソースから,ラベル(短)を返します。
 void guiClear()
          GUI情報をクリアします。
 DBColumn makeDBColumn(java.lang.String key)
          DBColumn オブジェクトを作成します。
 void makeGUIInfos(UserInfo user)
          ログインユーザーで使用する画面オブジェクトを、UserInfoにセットします。
 void setDBColumn(java.lang.String key, DBColumn dbColumn)
          DBColumn オブジェクトをプールに登録します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

ResourceManager

public ResourceManager(java.lang.String systemId,
                       java.lang.String lg,
                       boolean initLoad)
コンストラクター システムIDと言語コードを指定して,生成します。

パラメータ:
systemId - システムID
lg - 言語コード
initLoad - リソースデータの先読み可否(true:先読みする)
メソッドの詳細

getLang

public java.lang.String getLang()
設定されている言語を返します。

戻り値:
言語

getDBColumn

public DBColumn getDBColumn(java.lang.String key)
DBColumn オブジェクトを取得します。 作成したDBColumnオブジェクトは,内部にプールしておき,同じオブジェクト要求が あったときは,プールのオブジェクトを利用して,DBColumnを返します。

パラメータ:
key - カラムID
戻り値:
DBColumnオブジェクト
変更履歴:
3.4.0.0 (2003/09/01) ラベルカラム、コードカラム、表示パラメータ、編集パラメータ、文字パラメータの追加。
3.5.6.4 (2004/07/16) 追加パラメータ取り込み時に、"_" は、null 扱いとする。
3.6.0.7 (2004/11/06) DBColumn の official属性追加

makeDBColumn

public DBColumn makeDBColumn(java.lang.String key)
DBColumn オブジェクトを作成します。 内部にプールに存在すればそれを、なければ新規に作成します。 それでも存在しない場合は、DBColumnConfig より、ラベルと言語を指定して 新規に作成します。

パラメータ:
key - カラムID
戻り値:
DBColumnオブジェクト
関連項目:
getDBColumn( String )

setDBColumn

public void setDBColumn(java.lang.String key,
                        DBColumn dbColumn)
DBColumn オブジェクトをプールに登録します。 DBColumn を動的に作成する機能で、作成したカラムオブジェクトを プールに登録することで、通常のリソースと同じように利用できるように します。

パラメータ:
key - カラムID
dbColumn - DBColumnオブジェクト
変更履歴:
5.4.2.2 (2011/12/14) 新規追加

getLabel

public java.lang.String getLabel(java.lang.String key)
ラベルリソースから,ラベルを返します。 引数の言語コードに応じたリソースが登録されていない場合は, 引数のラベルキーそのまま返します。

パラメータ:
key - ラベルキー
戻り値:
リソースに応じたラベル文字列(無ければ ラベルキー)
変更履歴:
4.0.0 (2005/01/31) オラクルとWindowsとの間の "~"の文字化け対策中止
4.0.0.0 (2007/10/18) メッセージリソースとの統合化

getLabel

public java.lang.String getLabel(java.lang.String key,
                                 java.lang.String[] args)
メッセージリソースから,キーで指定されたメッセージに, 引数で指定された変数値をセットしたメッセージを返します。 このメッセージは,リソースで選ばれたロケール毎のメッセージに, MessageFormat#format でフォーマットする事により,作成されます。 メッセージがリソースに存在しない場合は,キーを返します。

パラメータ:
key - キー
args - メッセージの引数
戻り値:
メッセージ(無ければ キー)
変更履歴:
4.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の変換で、カラム名が複数指定されている場合の対応

getLabel

public java.lang.String getLabel(ErrMsg errMsg)
メッセージリソースから,ErrMsgオブジェクトで指定されたメッセージを返します。 このエラーメッセージは,リソースで選ばれたロケール毎のメッセージに, MessageFormat#format でフォーマットする事により,作成されます。 エラーメッセージがリソースに存在しない場合は,エラーコードを返します。

パラメータ:
errMsg - ErrMsgオブジェクト
戻り値:
エラーメッセージ(無ければ ErrMsgオブジェクトの toString() )
変更履歴:
4.0.0 (2004/12/31) 新規追加
4.0.0.0 (2007/10/18) メッセージリソースとの統合化

getShortLabel

public java.lang.String getShortLabel(java.lang.String key)
ラベルリソースから,ラベル(短)を返します。 引数の言語コードに応じたリソースが登録されていない場合は, 引数のラベルキーそのまま返します。

パラメータ:
key - ラベルキー
戻り値:
リソースに応じたラベル文字列(無ければ ラベルキー)
変更履歴:
4.3.3.0 (2008/10/01) 新規作成

getDescription

public java.lang.String getDescription(java.lang.String key)
ラベルリソースから,概要説明を返します。 キーのデータが存在しない場合はnullを返します。

パラメータ:
key - ラベルキー
戻り値:
リソースに応じた概要説明(無ければ null)
変更履歴:
4.3.4.5 (2009/01/08) 新規作成

getDescription

public java.lang.String getDescription(java.lang.String key,
                                       java.lang.String[] args)
ラベルリソースから,概要説明を返します。 {0},{1}...の置換えを行います。 キーのデータが存在しない場合はnullを返します。

パラメータ:
key - ラベルキー
args - パラメータ
戻り値:
リソースに応じた概要説明(無ければ null)
変更履歴:
4.3.7.6 (2009/07/15) 新規作成

getDescription

public java.lang.String getDescription(ErrMsg errMsg)
ラベルリソースから,概要説明を返します。 キーのデータが存在しない場合はnullを返します。

パラメータ:
errMsg - ErrMsgオブジェクト
戻り値:
エラーメッセージ(キーが無ければnull)
変更履歴:
4.3.7.6 (2009/07/15) 新規作成

getLabelData

public LabelData getLabelData(java.lang.String key)
ラベルリソースから,ラベルを返します。 引数の言語コードに応じたリソースが登録されていない場合は, 引数のラベルキーそのまま返します。

パラメータ:
key - ラベルキー
戻り値:
リソースに応じたラベル文字列(無ければ ラベルキー)
変更履歴:
4.0.0 (2005/01/31) 新規作成

getCodeData

public CodeData getCodeData(java.lang.String key)
コードリソースから,コード文字列を返します。

パラメータ:
key - コードキー
戻り値:
コードデータオブジェクト(無ければ null)

getCodeData

public CodeData getCodeData(java.lang.String key,
                            java.lang.String query)
コードリソースから,コード文字列を返します。 引数にQUERYを渡すことで、DBから、動的にコードリソースを作成できます。

パラメータ:
key - コードキー
query - 検索SQL(引数に、? を一つ持つ)
戻り値:
コードデータオブジェクト(無ければ null)
変更履歴:
5.4.2.2 (2011/12/14) 新規追加。

makeGUIInfos

public void makeGUIInfos(UserInfo user)
ログインユーザーで使用する画面オブジェクトを、UserInfoにセットします。 各、UserInfo は、自分自身が使用する 画面オブジェクトのみを管理することで、 画面アクセス有無を、すばやく検索することが可能になります。

パラメータ:
user - 指定のユーザーロールに対応する画面だけをMapにセットする。
変更履歴:
3.1.0.1 (2003/03/26) GUIInfo のキー順サポートの為に、引数追加。
4.0.0 (2005/01/31) 使用画面のMap を UserInfo にセットします。
4.3.0.0 (2008/07/04) ロールモードマルチ対応
5.2.0.0 (2010/09/01) アクセス禁止アドレスによる不正アクセス防止機能追加

getLabelMap

public java.util.Map<java.lang.String,LabelData> getLabelMap(java.lang.String query)
指定されたクエリを発行し、ラベルマップを作成します。

パラメータ:
query - ラベルマップを作成するクエリ
戻り値:
ラベルマップ
関連項目:
LabelDataLoader.getLabelMap( String )
変更履歴:
4.3.4.0 (2008/12/01) 新規作成

clear

public void clear(java.lang.String key)
リソースマネージャーをキーに基づいて部分クリアします。 ここでは、部分クリアなため、GUIData に関しては、処理されません。 また、存在しないキーを指定されたリソースは、何も処理されません。

パラメータ:
key - カラムのキー
変更履歴:
5.4.3.4 (2012/01/12) labelPool の削除追加

guiClear

public void guiClear()
GUI情報をクリアします。 ここでは、関連するラベル、コードリソースの部分クリアも行います。 GUI情報は、シーケンスに管理しているため、この処理1回ごとに、 GUIData を全件再読み込みを行いますので、ご注意ください。


clear

public void clear()
リソースマネージャーをクリア(初期化)します。

変更履歴:
5.4.3.4 (2012/01/12) labelPool の削除追加

openGion 5.5.6.0

Webアプリケーションフレームワーク openGion
SourceForge.JPCopyright (c) 2009 The openGion Project.