org.opengion.hayabusa.resource

## クラス CodeDataLoader

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

-     final class CodeDataLoader
      extends java.lang.Object

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

    4.0.0.0 (2004/12/31) 新規作成

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

- - ### フィールドの概要

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static java.lang.String` | `QUERY` ＤＢリソースの初期一括読み込みのクエリー
    `static java.lang.String` | `QUERY2` ＤＢリソースの個別読み込み時のクエリー
    `static boolean` | `USE_DB_APPLICATION_INFO` コネクションにアプリケーション情報を追記するかどうか指定

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

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

  - ### メソッドの概要

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

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

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

- - ### フィールドの詳細

    - #### QUERY

          public static final java.lang.String QUERY

      ＤＢリソースの初期一括読み込みのクエリー
      関連項目:
        定数フィールド値

    - #### QUERY2

          public static final java.lang.String QUERY2

      ＤＢリソースの個別読み込み時のクエリー
      関連項目:
        定数フィールド値

    - #### USE_DB_APPLICATION_INFO

          public static final boolean USE_DB_APPLICATION_INFO

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

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

    - #### CodeDataLoader

          CodeDataLoader(java.lang.String systemId,
                        boolean initLoad,
                        LabelDataLoader lLoader)

      lang 毎に ファクトリオブジェクトを作成します。
      パラメータ:
        `systemId` - システムID
        `initLoad` - リソースデータの先読み可否(true:先読みする)
        `lLoader` - ラベルデータローダー
      変更履歴:

        3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfoオブジェクトを設定

  - ### メソッドの詳細

    - #### getCodeData

          public CodeData getCodeData(java.lang.String key)

      CodeData オブジェクトを取得します。 作成したCodeDataオブジェクトは，内部にプールしておき，同じリソース要求が あったときは，プールの CodeDataを返します。
      パラメータ:
        `key` - コードのキー
      戻り値:
        CodeData オブジェクト
      変更履歴:

        4.3.8.0 (2009/08/01) rawShortLabel追加
        5.6.8.2 (2013/09/20) rawLongLabel追加

    - #### getCodeData

          public CodeData getCodeData(java.lang.String key,
                             java.lang.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(java.lang.String key)

      CodeData オブジェクトのキャッシュを個別にクリアします。 リソースデータの更新など、一部分の更新時に、すべてのキャッシュを 破棄するのではなく、指定の分のみ破棄できる機能です。
      パラメータ:
        `key` - コードのキー
      変更履歴:

        4.0.2.0 (2007/12/25) コードリソースクリア時に対応するラベルリソースもクリアする。

    - #### clear

          public void clear()

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

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