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

# クラス LabelDataLoader

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

final class LabelDataLoader extends Object
systemId と lang に対応したラベルデータを作成するデータロードクラスです。 ラベルデータは、項目(CLM)に対して、各種ラベル情報を持っています。 ラベルデータは、名前(ORG)と名前(短)と名前(長)を持っています。従来のラベルは、表示名称と して、一種類しか持っていませんでした。 名前(ORG)は、従来の表示名称にあたります。これは、一般的なラベルとして 使用されます。名前(短)は、テーブル一覧のヘッダーの様に、特殊なケースで、 簡略化された名称を使用するときに利用されます。この切り替えは、自動で判断されます。 名前(短)に、なにも設定されていない場合は、名前(長)が自動的に使用されますので 初期データ移行時には、そのまま、通常時もテーブルヘッダー時も同じ文字列が 使用されます。 名前(短)と名前(長)は、コメント情報が存在する場合は、Tips表示を行います。 ラベルデータを作成する場合は、同一ラベルで、作成区分(KBSAKU)違いの場合は、 最も大きな作成区分を持つコードを使用します。 作成区分(KBSAKU)='0' のデータは、マスタリソースとして、エンジンとともに 配布されるリソースになります。 読込フラグ(FGLOAD)='1'のラベルリソースは、このLabelDataLoaderオブジェクトが 構築された時に、すべてキャッシュとして内部メモリに読み取ります。 読込フラグが、'1' 以外のデータは、初期起動時には、メモリにキャッシュされず 実際に使用されるまで、オブジェクトが作成されません。 これは、使用されるかどうか判らないラベルデータを、予め作成しないことで、メモリの 節約を図っています。 ただし、リソースのキャッシュに、WeakHashMap クラスを使用しているため、 メモリオーバー時には、クリアされるため、単独での読み取りも行います。 SYSTEM_ID='**' は、共通リソースです。 これは、システム間で共通に使用されるリソース情報を登録しておきます。

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

- ## フィールドの概要

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

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

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

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `void`
  `clear()`
  LabelData オブジェクトのキャッシュをクリアします。
  `void`
  `clear(String key)`
  LabelData オブジェクトのキャッシュを個別にクリアします。
  `LabelData`
  `getLabelData(String key)`
  LabelData オブジェクトを取得します。
  `Map<String,LabelData>`
  `getLabelMap(String query, String dbid)`
  指定されたクエリを発行し、ラベルマップを作成します。

  ### クラスから継承されたメソッド 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
    コネクションにアプリケーション情報を追記するかどうか指定

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

  - ### LabelDataLoader

    LabelDataLoader(String[] sysAry, String lng, boolean initLoad)
    SystemId と lang 毎に ファクトリオブジェクトを作成します。
    パラメータ:
      `sysAry` - 階層ﾘｿｰｽの元となるSYSTEM_IDの配列(前方優先)
      `lng` - 言語
      `initLoad` - リソースデータの先読み可否(true:先読みする)
    変更履歴:
      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

- ## メソッドの詳細

  - ### getLabelData

    public LabelData getLabelData(String key)
    LabelData オブジェクトを取得します。 作成したLabelDataオブジェクトは，内部にプールしておき，同じリソース要求が あったときは，プールの LabelDataを返します。 リソースDBに存在しない場合は、NULLラベルを作成します。このオブジェクトも キャッシュします。 読込フラグ(FGLOAD)が '1' のデータは、起動時に先読みします。 それ以外のデータは、ここでキー要求が発生した時点で読み込みます。 読込フラグ(FGLOAD) のマーカー設定モード(USE_FGLOAD_AUTOSET)を使用する(true)場合は、 追加読み込み(先読みされていないカラム)に対して、読込フラグ(FGLOAD)を 2:使用実績 に 設定します。(次回起動時の、初期読み込みは行いません。) ※ 以下のロジックは、先に見つかった値を返すので、前方優先で検索します。
    パラメータ:
      `key` - ラベルのキー
    戻り値:
      LabelDataオブジェクト
    変更履歴:
      3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfoオブジェクトを設定, 6.3.1.1 (2015/07/10) 読込フラグ(FGLOAD) のマーカー設定追加。, 7.2.6.0 (2020/06/30) "**"以外にベースとなるSYSTEM_ID(RESOURCE_BASE_SYSTEM_ID)設定の対応, 7.2.8.0 (2020/09/04) "**"以外にベースとなるSYSTEM_ID(RESOURCE_BASE_SYSTEM_ID)設定の対応。SQL文手直し, 7.3.1.3 (2021/03/09) QUERY文字列を変更。それに伴って、引数の並び順を変更。
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getLabelMap

    public Map<String,LabelData> getLabelMap(String query, String dbid)
    指定されたクエリを発行し、ラベルマップを作成します。 ここで作成されたラベル情報は、内部的にキャッシュされません。 各画面で一時的にラベル情報を追加したい場合に使用します。 発行するクエリでは、第1カラムにラベルキーを、第2カラムにラベル名称を設定します。 第3カラムが存在する場合は、名称(短)として使用されます。(必須ではありません) クエリが指定されていない又は、検索したカラム数が1以下の場合はエラーを返します。
    パラメータ:
      `query` - ラベルマップを作成するクエリ
      `dbid` - 接続先ID
    戻り値:
      ラベルマップ
    変更履歴:
      4.3.4.0 (2008/12/01) 新規作成, 6.4.0.5 (2016/01/09) useLabelMap="true" 時のSQL文の実行は、dbid を使用して行う。

  - ### clear

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

  - ### clear

    public void clear()
    LabelData オブジェクトのキャッシュをクリアします。