概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.8.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## org.opengion.hayabusa.resource
クラス 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 メッセージリソース(エラーコードやメッセージなどを表示するリソース) の３つのプロパティーファイルを内部に持っており,それぞれのメソッドにより， リソースの返す値を決めています。 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オブジェクトの作成方法として、 ３通り考えられます。 １つ目は、毎回 要求が発生する毎に CodeSelection を作成し、プールしていきます。こうすることで、 初めて使用されたときだけオブジェクト化されますので、メモリの節約が可能です。ただし、 プールにヒットしなかった場合は、やはりリソースから検索しますので、元々ヒットしない キーに対しては、毎回リソースを検索するため、非効率です。 ２つめは、元々ヒットしないキーに対して、NullCodeSelectionオブジェクトを登録しておくことで、 プールにため込んで行くと言う方法です。この場合は、シングルトーンにしてメモリを節約しますが、 それでもプール自体の容量は、確保しておく必要があります。 ３つめは、この ResourceManager がインスタンス化されるときに、すべての CodeSelectionオブジェクトを あらかじめ プールしておく方法です。使わない CodeSelection もインスタンス化する変わりに、 キャッシュにヒットしない場合は、即 CodeSelection が存在しないと判断できるため、 もっともパフォーマンスが高くなります。 本 ResourceManager の実装は、３つめの、あらかじめ、すべてをキャッシュしておく方法を 採用しています。

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

コンストラクタの概要
`ResourceManager(String systemId, String lg, boolean initLoad)` コンストラクター システムＩＤと言語コードを指定して,生成します。

メソッドの概要
`void` | `clear()` リソースマネージャーをクリア(初期化)します。
`void` | `clear(String key)` リソースマネージャーをキーに基づいて部分クリアします。
`CodeData` | `getCodeData(String key)` コードリソースから,コード文字列を返します。
`CodeData` | `getCodeData(String key, String query)` コードリソースから,コード文字列を返します。
`DBColumn` | `getDBColumn(String key)` DBColumn オブジェクトを取得します。
`String` | `getDescription(ErrMsg errMsg)` ラベルリソースから,概要説明を返します。
`String` | `getDescription(String key)` ラベルリソースから,概要説明を返します。
`String` | `getDescription(String key, String[] args)` ラベルリソースから,概要説明を返します。
`String` | `getLabel(ErrMsg errMsg)` メッセージリソースから,ErrMsgオブジェクトで指定されたメッセージを返します。
`String` | `getLabel(String key)` ラベルリソースから,ラベルを返します。
`String` | `getLabel(String key, String[] args)` メッセージリソースから,キーで指定されたメッセージに, 引数で指定された変数値をセットしたメッセージを返します。
`LabelData` | `getLabelData(String key)` ラベルリソースから,ラベルを返します。
`Map<String,LabelData>` | `getLabelMap(String query)` 指定されたクエリを発行し、ラベルマップを作成します。
`String` | `getLang()` 設定されている言語を返します。
`String` | `getShortLabel(String key)` ラベルリソースから,ラベル(短)を返します。
`void` | `guiClear()` GUI情報をクリアします。
`DBColumn` | `makeDBColumn(String key)` DBColumn オブジェクトを作成します。
`void` | `makeGUIInfos(UserInfo user)` ログインユーザーで使用する画面オブジェクトを、UserInfoにセットします。
`void` | `setDBColumn(String key, DBColumn dbColumn)` DBColumn オブジェクトをプールに登録します。

クラス java.lang.Object から継承されたメソッド
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

コンストラクタの詳細

### ResourceManager

    public ResourceManager(String systemId,
                           String lg,
                           boolean initLoad)

  コンストラクター システムＩＤと言語コードを指定して,生成します。

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

メソッドの詳細

### getLang

    public String getLang()

  設定されている言語を返します。

  戻り値:
    言語

### getDBColumn

    public DBColumn getDBColumn(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(String key)

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

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

### setDBColumn

    public void setDBColumn(String key,
                            DBColumn dbColumn)

  DBColumn オブジェクトをプールに登録します。 DBColumn を動的に作成する機能で、作成したカラムオブジェクトを プールに登録することで、通常のリソースと同じように利用できるように します。

  パラメータ:
    `key` - カラムID
    `dbColumn` - DBColumnオブジェクト
  変更履歴:

    5.4.2.2 (2011/12/14) 新規追加

### getLabel

    public String getLabel(String key)

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

  パラメータ:
    `key` - ラベルキー
  戻り値:
    リソースに応じたラベル文字列(無ければ ラベルキー)
  変更履歴:

    4.0.0.0 (2005/01/31) オラクルとWindowsとの間の "～"の文字化け対策中止
    4.0.0.0 (2007/10/18) メッセージリソースとの統合化

### getLabel

    public String getLabel(String key,
                           String[] args)

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

  パラメータ:
    `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の変換で、カラム名が複数指定されている場合の対応

### getLabel

    public String getLabel(ErrMsg errMsg)

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

  パラメータ:
    `errMsg` - ErrMsgオブジェクト
  戻り値:
    エラーメッセージ(無ければ ErrMsgオブジェクトの toString() )
  変更履歴:

    4.0.0.0 (2004/12/31) 新規追加
    4.0.0.0 (2007/10/18) メッセージリソースとの統合化

### getShortLabel

    public String getShortLabel(String key)

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

  パラメータ:
    `key` - ラベルキー
  戻り値:
    リソースに応じたラベル文字列(無ければ ラベルキー)
  変更履歴:

    4.3.3.0 (2008/10/01) 新規作成

### getDescription

    public String getDescription(String key)

  ラベルリソースから,概要説明を返します。 キーのデータが存在しない場合はnullを返します。

  パラメータ:
    `key` - ラベルキー
  戻り値:
    リソースに応じた概要説明(無ければ null)
  変更履歴:

    4.3.4.5 (2009/01/08) 新規作成

### getDescription

    public String getDescription(String key,
                                 String[] args)

  ラベルリソースから,概要説明を返します。 {0},{1}...の置換えを行います。 キーのデータが存在しない場合はnullを返します。

  パラメータ:
    `key` - ラベルキー
    `args` - パラメータ
  戻り値:
    リソースに応じた概要説明(無ければ null)
  変更履歴:

    4.3.7.6 (2009/07/15) 新規作成

### getDescription

    public String getDescription(ErrMsg errMsg)

  ラベルリソースから,概要説明を返します。 キーのデータが存在しない場合はnullを返します。

  パラメータ:
    `errMsg` - ErrMsgオブジェクト
  戻り値:
    エラーメッセージ(キーが無ければnull)
  変更履歴:

    4.3.7.6 (2009/07/15) 新規作成

### getLabelData

    public LabelData getLabelData(String key)

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

  パラメータ:
    `key` - ラベルキー
  戻り値:
    リソースに応じたラベル文字列(無ければ ラベルキー)
  変更履歴:

    4.0.0.0 (2005/01/31) 新規作成

### getCodeData

    public CodeData getCodeData(String key)

  コードリソースから,コード文字列を返します。

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

### getCodeData

    public CodeData getCodeData(String key,
                                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.0 (2005/01/31) 使用画面のMap を UserInfo にセットします。
    4.3.0.0 (2008/07/04) ロールモードマルチ対応
    5.2.0.0 (2010/09/01) アクセス禁止アドレスによる不正アクセス防止機能追加

### getLabelMap

    public Map<String,LabelData> getLabelMap(String query)

  指定されたクエリを発行し、ラベルマップを作成します。

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

    4.3.4.0 (2008/12/01) 新規作成

### clear

    public void clear(String key)

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

  パラメータ:
    `key` - カラムのキー
  変更履歴:

    5.4.3.4 (2012/01/12) labelPool の削除追加

### guiClear

    public void guiClear()

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

### clear

    public void clear()

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

  変更履歴:

    5.4.3.4 (2012/01/12) labelPool の削除追加

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| openGion 5.8.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

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