パッケージ org.opengion.hayabusa.resource

# クラス CodeDataLoader

java.lang.Object
org.opengion.hayabusa.resource.CodeDataLoader

final class CodeDataLoader extends Object
コードオブジェクトを作成するデータロードクラスです。 systemId と lang に対応したコードオブジェクトを作成します。 コードオブジェクトは、項目(CLM)に対して、複数のコード(CODE)を持っています。 この複数のコードを表示順に持つことで、プルダウンメニュー等の表示順を指定します。 コードオブジェクトを作成する場合は、同一項目・コードで、作成区分(KBSAKU)違いの場合は、 最も大きな作成区分を持つコードを使用します。 作成区分(KBSAKU)は、他のリソースと異なり、同一項目・コード単位に設定すべきです。 これは、通常は項目単位に作成区分を持つべきところを、コード単位でしか 持てないデータベースの設計になっている為です。アプリケーション側で設定条件を きちんと管理すれば、作成区分を使用できますが、一般にはお奨めできません。 作成区分(KBSAKU)='0' のデータは、マスタリソースとして、エンジンとともに 配布されるリソースになります。 読み込みフラグ(FGLOAD)は、使用しません。 コードリソースに関しては、システム起動時に、すべてのコードリソースをエンジン内部 に取り込みます。ただし、リソースのキャッシュに、WeakHashMap クラスを使用しているため、 メモリオーバー時には、クリアされるため、単独での読み取りも行います。 SYSTEM_ID='**' は、共通リソースです。 これは、システム間で共通に使用されるリソース情報を登録しておきます。

変更履歴:
  4.0.0.0 (2004/12/31) 新規作成
機能分類
  リソース管理
導入されたバージョン:
  JDK5.0,

- ## フィールドの概要

  フィールド
  修飾子とタイプ
  フィールド
  説明
  `static final boolean`
  `USE_DB_APPLICATION_INFO`
  コネクションにアプリケーション情報を追記するかどうか指定

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `CodeDataLoader(String[] sysAry, boolean initLoad, LabelDataLoader lLoader)`
  lang 毎に ファクトリオブジェクトを作成します。

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `void`
  `clear()`
  CodeData オブジェクトのキャッシュをクリアして、再作成します。
  `void`
  `clear(String key)`
  CodeData オブジェクトのキャッシュを個別にクリアします。
  `CodeData`
  `getCodeData(String key)`
  CodeData オブジェクトを取得します。
  `CodeData`
  `getCodeData(String key, String query)`
  CodeData オブジェクトを取得します。

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## フィールド詳細

  - ### USE_DB_APPLICATION_INFO

    public static final boolean USE_DB_APPLICATION_INFO
    コネクションにアプリケーション情報を追記するかどうか指定

- ## コンストラクタの詳細

  - ### CodeDataLoader

    CodeDataLoader(String[] sysAry, boolean initLoad, LabelDataLoader lLoader)
    lang 毎に ファクトリオブジェクトを作成します。
    パラメータ:
      `sysAry` - 階層ﾘｿｰｽの元となるSYSTEM_IDの配列(前方優先)
      `initLoad` - リソースデータの先読み可否(true:先読みする)
      `lLoader` - ラベルデータローダー
    変更履歴:
      7.2.9.2 (2020/10/30) ベースとなるSYSTEM_ID(RESOURCE_BASE_SYSTEM_ID)の取得, 8.0.0.0 (2021/10/01) RESOURCE_BASE_SYSTEM_ID は、SYSTEM_IDの配列で複数指定できる。 // * @param systemId システムID // * @param baseSys ベースとなるSYSTEM_ID

- ## メソッドの詳細

  - ### getCodeData

    public CodeData getCodeData(String key)
    CodeData オブジェクトを取得します。 作成したCodeDataオブジェクトは，内部にプールしておき，同じリソース要求が あったときは，プールの CodeDataを返します。
    パラメータ:
      `key` - コードのキー
    戻り値:
      CodeDataオブジェクト
    変更履歴:
      4.3.8.0 (2009/08/01) rawShortLabel追加, 5.6.8.2 (2013/09/20) rawLongLabel追加, 6.2.0.0 (2015/02/27) description 概要説明 追加, 7.2.6.0 (2020/06/30) "**"以外にベースとなるSYSTEM_ID(RESOURCE_BASE_SYSTEM_ID)設定の対応, 7.3.1.3 (2021/03/09) QUERY文字列を変更。それに伴って、引数の並び順を変更。, 8.0.0.0 (2021/10/01) 階層ﾘｿｰｽの元となるSYSTEM_IDの配列(前方優先)を使用する。

  - ### getCodeData

    public CodeData getCodeData(String key, String query)
    CodeData オブジェクトを取得します。 作成したCodeDataオブジェクトは，内部にプールしておき，同じリソース要求が あったときは，プールの CodeDataを返します。 引数にQUERYを渡すことで、DBから、動的にコードリソースを作成できます。 引数の順番は、CodeData で定義している CLM,CODE,LNAME,SNAME の順番のままです。 QUERY には、key を引数にとる必要があります。つまり、WHERE CLM = ? の様な記述が必要です。
    パラメータ:
      `key` - コードのキー
      `query` - 検索SQL(引数に、? を一つ持つ)
    戻り値:
      CodeDataオブジェクト
    変更履歴:
      5.4.2.2 (2011/12/14) 新規追加。

  - ### clear

    public void clear(String key)
    CodeData オブジェクトのキャッシュを個別にクリアします。 リソースデータの更新など、一部分の更新時に、すべてのキャッシュを 破棄するのではなく、指定の分のみ破棄できる機能です。
    パラメータ:
      `key` - コードのキー
    変更履歴:
      4.0.2.0 (2007/12/25) コードリソースクリア時に対応するラベルリソースもクリアする。

  - ### clear

    public void clear()
    CodeData オブジェクトのキャッシュをクリアして、再作成します。