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

## クラス CodeData

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

-     public final class CodeData
      extends Object

  systemId と lang に対応したコードデータを作成します。 コードデータは、項目(CLM)に対して、複数のコード(CODE)を持っています。 この複数のコードを表示順に持つことで、プルダウンメニュー等の表示順を指定します。 コードデータを作成する場合は、同一項目・コードで、作成区分違いの場合は、 最も大きな作成区分を持つコードを使用します。 作成区分(KBSAKU)は、他のリソースと異なり、基本的には使用しません。 これは、通常は項目単位に作成区分を持つべきところを、コード単位でしか 持てないデータベースの設計になっている為です。アプリケーション側で設定条件を きちんと管理すれば、作成区分を使用できますが、一般にはお奨めできません。
  変更履歴:
    4.0.0.0 (2004/12/31) 新規作成
  機能分類
    リソース管理
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

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

    フィールド
    修飾子とタイプ | フィールド | 説明
    --- | --- | ---
    `static int` | `CLM` | カラム番号 0
    `static int` | `CODE` | カラム番号 1
    `static int` | `CODE_PARAM` | カラム番号 6
    `static int` | `CODEGRP` | カラム番号 5
    `static int` | `CODELVL` | カラム番号 4
    `(package private) static int` | `DATA_SIZE` | 内部データのカラム数 13
    `static int` | `DESCRIPT` | カラム番号 12
    `static int` | `KBSAKU` | カラム番号 9
    `static int` | `LNAME` | カラム番号 2
    `static int` | `RLNAME` | カラム番号 11
    `static int` | `ROLES` | カラム番号 7
    `static int` | `RSNAME` | カラム番号 10
    `static int` | `SNAME` | カラム番号 3
    `static int` | `SYSTEM_ID` | カラム番号 8

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

    コンストラクタ
    コンストラクタ | 説明
    --- | ---
    `CodeData​(String clm, Map<String,​String[]> data)` | 配列文字列のデータを元に、CodeDataオブジェクトを構築します。
    `CodeData​(String clm, Map<String,​String[]> data, boolean[] useFlag)` | 配列文字列のデータを元に、CodeDataオブジェクトを構築します。

  - ### メソッドの概要

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `int` | `getAddress​(String key)` | マッチするコードデータのアドレスを返します。
    `String` | `getCodeKey​(int seqNo)` | コードデータのキーを返します。
    `String` | `getCodeLevel​(int seqNo)` | コード階層を返します。
    `String` | `getCodeParam​(int seqNo)` | コードパラメータを返します。
    `String` | `getColumn()` | コードデータのキーを返します。
    `String` | `getDescription​(int seqNo)` | 概要説明 を返します。
    `String` | `getLongLabel​(int seqNo)` | コードデータの表示名を返します。
    `String` | `getRawLongLabel​(int seqNo)` | 未加工の名前長を返します。
    `String` | `getRawShortLabel​(int seqNo)` | コードデータの短縮表示名(spanタグ無し)を返します。
    `RoleMode` | `getRoleMode​(int seqNo)` | カラムオブジェクトのロールモードを返します。
    `String` | `getRoles​(int seqNo)` | コードロールを取得します。
    `String` | `getShortLabel​(int seqNo)` | コードデータの短縮表示名を返します。
    `int` | `getSize()` | コードデータの配列数を返します。
    `boolean` | `isUse​(int seqNo)` | このコードが、使用できるかどうかを、返します。
    `CodeData` | `subsetGroup​(String group)` | 指定のgroupに所属する限定された CodeData を構築して返します。
    `CodeData` | `subsetList​(String codeCsv)` | 指定のコードに限定された CodeData を構築して返します。
    `CodeData` | `subsetRole​(RoleMode userRole)` | 指定のコードに限定された CodeData を構築して返します。
    `String` | `toCodeString()` | オブジェクトの識別子として，詳細なコード情報を返します。
    `String` | `toString()` | オブジェクトの識別子として，詳細なコード情報を返します。
    `boolean` | `useGroup()` | コードグループを利用するかどうかを返します。
    `boolean` | `useLevel()` | コードレベル機能を利用するかどうかを返します。
    `boolean` | `useParam()` | パラメータを利用するかどうかを返します。
    `boolean` | `useRoleMode()` | ロールモードを、使用しているかどうかを、返します。

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

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

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

    - #### CLM

          public static final int CLM

      カラム番号 0
      関連項目:
        定数フィールド値

    - #### CODE

          public static final int CODE

      カラム番号 1
      関連項目:
        定数フィールド値

    - #### LNAME

          public static final int LNAME

      カラム番号 2
      関連項目:
        定数フィールド値

    - #### SNAME

          public static final int SNAME

      カラム番号 3
      関連項目:
        定数フィールド値

    - #### CODELVL

          public static final int CODELVL

      カラム番号 4
      関連項目:
        定数フィールド値

    - #### CODEGRP

          public static final int CODEGRP

      カラム番号 5
      関連項目:
        定数フィールド値

    - #### CODE_PARAM

          public static final int CODE_PARAM

      カラム番号 6
      関連項目:
        定数フィールド値

    - #### ROLES

          public static final int ROLES

      カラム番号 7
      関連項目:
        定数フィールド値

    - #### SYSTEM_ID

          public static final int SYSTEM_ID

      カラム番号 8
      関連項目:
        定数フィールド値

    - #### KBSAKU

          public static final int KBSAKU

      カラム番号 9
      関連項目:
        定数フィールド値

    - #### RSNAME

          public static final int RSNAME

      カラム番号 10
      関連項目:
        定数フィールド値

    - #### RLNAME

          public static final int RLNAME

      カラム番号 11
      関連項目:
        定数フィールド値

    - #### DESCRIPT

          public static final int DESCRIPT

      カラム番号 12
      関連項目:
        定数フィールド値

    - #### DATA_SIZE

          static final int DATA_SIZE

      内部データのカラム数 13
      関連項目:
        定数フィールド値

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

    - #### CodeData

          CodeData​(String clm,
                   Map<String,​String[]> data,
                   boolean[] useFlag)

      配列文字列のデータを元に、CodeDataオブジェクトを構築します。 このコンストラクタは、他のパッケージから呼び出せないように、 パッケージプライベートにしておきます。 このコンストラクタは、マスタリソースファイルを想定しています。 引数の並び順は、CLM,CODE,LNAME,SNAME,CODELVL,CODEGRP,CODE_PARAM,ROLES,SYSTEM_ID,KBSAKU,RSNAME,RLNAME,DESCRIPT
      パラメータ:
        `clm` - カラム名
        `data` - 規定の順番の文字列配列を格納
        `useFlag` - 使用フラグ配列(サブセット化するときの有効/無効を指定)
      変更履歴:
        5.1.9.0 (2010/08/01) 新規追加, 6.3.6.0 (2015/08/16) System.arraycopy が使える箇所は、置き換えます。

    - #### CodeData

          CodeData​(String clm,
                   Map<String,​String[]> data)

      配列文字列のデータを元に、CodeDataオブジェクトを構築します。 このコンストラクタは、他のパッケージから呼び出せないように、 パッケージプライベートにしておきます。 このコンストラクタは、マスタリソースファイルを想定しています。 引数の並び順は、CLM,CODE,LNAME,SNAME,CODELVL,CODEGRP,CODE_PARAM,ROLES,SYSTEM_ID,KBSAKU,RSNAME,RLNAME,DESCRIPT
      パラメータ:
        `clm` - カラム名
        `data` - 規定の順番の文字列配列を格納
      変更履歴:
        4.3.0.0 (2008/07/04) ロールモードマルチ対応, 4.3.8.0 (2009/08/01) rawShortLabel追加, 4.3.8.0 (2009/08/01) グループ機能とパラメータの判定、isUseFlag フラグの追加, 5.2.2.0 (2010/11/01) "_" の取り扱いの変更, 5.6.8.2 (2103/09/20) rawlongLabel追加, 6.2.0.0 (2015/02/27) description 概要説明 追加, 6.9.5.0 (2018/04/23) USE_MULTI_KEY_SELECT 廃止(IE8以降ブラウザ標準)

  - ### メソッドの詳細

    - #### getColumn

          public String getColumn()

      コードデータのキーを返します。
      戻り値:
        コードデータのキー

    - #### getCodeKey

          public String getCodeKey​(int seqNo)

      コードデータのキーを返します。
      パラメータ:
        `seqNo` - 表示順
      戻り値:
        コードデータのキー

    - #### getLongLabel

          public String getLongLabel​(int seqNo)

      コードデータの表示名を返します。
      パラメータ:
        `seqNo` - 表示順
      戻り値:
        コードデータの表示名

    - #### getShortLabel

          public String getShortLabel​(int seqNo)

      コードデータの短縮表示名を返します。
      パラメータ:
        `seqNo` - 表示順
      戻り値:
        コードデータの短縮表示名

    - #### getCodeLevel

          public String getCodeLevel​(int seqNo)

      コード階層を返します。 通常のメニューは、階層が "1" になります。optgroup要素として使用する場合は、 階層を "0" で登録します。
      パラメータ:
        `seqNo` - 表示順
      戻り値:
        コード階層( "1":option要素、"0":optgroup要素 )

    - #### isUse

          public boolean isUse​(int seqNo)

      このコードが、使用できるかどうかを、返します。 コードグループや、コードリストなどで、サブセットを作成する場合、 プルダウンなどの選択肢は、制限しますが、レンデラーのラベルは、制限しません。 これは、既存データを表示させる必要がある為です。 このフラグは、選択肢を作成するときに利用します。 標準状態で作成した場合は、すべての項目が、true になっています。
      パラメータ:
        `seqNo` - 表示順
      戻り値:
        使用可能な場合は、true
      変更履歴:
        5.1.9.0 (2010/08/01) 新規追加

    - #### getCodeParam

          public String getCodeParam​(int seqNo)

      コードパラメータを返します。 コードパラメータは、メニューの各要素(option要素)に設定するタグの内容を追記します。 ここに記述した文字列をそのまま追記します。
      パラメータ:
        `seqNo` - 表示順
      戻り値:
        コードパラメータ

    - #### getRoles

          public String getRoles​(int seqNo)

      コードロールを取得します。
      パラメータ:
        `seqNo` - 表示順
      戻り値:
        コードロール

    - #### getRoleMode

          public RoleMode getRoleMode​(int seqNo)

      カラムオブジェクトのロールモードを返します。
      パラメータ:
        `seqNo` - 表示順
      戻り値:
        カラムオブジェクトのロールモード
      変更履歴:
        4.3.0.0 (2008/07/04) ロールモードマルチ対応

    - #### useRoleMode

          public boolean useRoleMode()

      ロールモードを、使用しているかどうかを、返します。 ロールモードを使用している場合は、ロール制御の処理が必要です。 使用している/いないを事前に判断することで、無駄な処理を削減できます。
      戻り値:
        ロールモードを使用している場合は、true
      変更履歴:
        5.1.9.0 (2010/08/01) 新規追加

    - #### getAddress

          public int getAddress​(String key)

      マッチするコードデータのアドレスを返します。 一致するデータが存在しない場合は、-1 を返します。
      パラメータ:
        `key` - 検索するキー文字列
      戻り値:
        コードデータのアドレス(なければ、-1)

    - #### getSize

          public int getSize()

      コードデータの配列数を返します。
      戻り値:
        コードデータの配列数

    - #### useLevel

          public boolean useLevel()

      コードレベル機能を利用するかどうかを返します。 true：使用する。false:使用しない です。 コードレベル機能を利用する場合は、optgroup タグを出力します。 設定としては、レベル 0 に指定のカラムを optgroup として出力します。
      戻り値:
        コードレベル機能を利用するかどうか(初期値:false:使用しない)
      変更履歴:
        5.1.9.0 (2010/08/01) 新規追加

    - #### useParam

          public boolean useParam()

      パラメータを利用するかどうかを返します。 true：使用する。false:使用しない です。 このパラメータは、class 属性として設定される値です。 これを使用して、各種レイアウトなどの指定が可能です。
      戻り値:
        パラメータを利用するかどうか(初期値:false:使用しない)
      変更履歴:
        5.1.9.0 (2010/08/01) 新規追加

    - #### useGroup

          public boolean useGroup()

      コードグループを利用するかどうかを返します。 true：使用する。false:使用しない です。 このコードグループは、リソースの引数で設定した CSV形式に 対して、値が設定されていたかどうかを返します。 これにより、不要な処理を行う必要がなくなります。
      戻り値:
        パラメータを利用するかどうか(初期値:false:使用しない)
      変更履歴:
        5.1.9.0 (2010/08/01) 新規追加

    - #### toCodeString

          public String toCodeString()

      オブジェクトの識別子として，詳細なコード情報を返します。 キー：ラベル　・・の繰り返し文字列を返します。
      戻り値:
        詳細なコード情報
      変更履歴:
        4.1.0.0 (2008/01/18) 新規追加

    - #### getRawShortLabel

          public String getRawShortLabel​(int seqNo)

      コードデータの短縮表示名(spanタグ無し)を返します。
      パラメータ:
        `seqNo` - 表示順
      戻り値:
        コードデータの短縮表示名(spanタグ無し)
      変更履歴:
        4.3.8.0 (2009/08/01) 新規追加

    - #### getRawLongLabel

          public String getRawLongLabel​(int seqNo)

      未加工の名前長を返します。
      パラメータ:
        `seqNo` - 表示順
      戻り値:
        コードデータの短縮表示名(spanタグ無し)
      変更履歴:
        5.6.8.2 (2013/09/13) 新規追加

    - #### getDescription

          public String getDescription​(int seqNo)

      概要説明 を返します。 この概要説明は、個々の コードに対する説明です。 optionタグに、title属性として使用すれば、説明文になります。
      パラメータ:
        `seqNo` - 表示順
      戻り値:
        コードデータの概要説明
      変更履歴:
        6.2.0.0 (2015/02/27) description 概要説明 追加

    - #### subsetList

          public CodeData subsetList​(String codeCsv)

      指定のコードに限定された CodeData を構築して返します。 このサブセットは、コードのCSV文字列に基づいて作成されます。 この CodeData は、本当のサブセットではなく、プルダウンメニューなどの選択肢のリストを 制限します。これは、一覧表示(レンデラー)では、すべての既存の設定値を表示しておく 必要があるからです。そして、変更時(エディター)に、選択肢を制限します。 引数の codeCsv が、null,ゼロ文字列の場合は、自分自身を返します。(同一です)
      パラメータ:
        `codeCsv` - 指定のコードをカンマで連結されたもの
      戻り値:
        指定のコードに限定された CodeData
      変更履歴:
        5.1.9.0 (2010/08/01) 新規追加, 5.6.8.2 (2013/09/20) rawLongLabel対応, 6.2.0.0 (2015/02/27) description 概要説明 追加
      このメソッドは、nullを返しません

    - #### subsetGroup

          public CodeData subsetGroup​(String group)

      指定のgroupに所属する限定された CodeData を構築して返します。 このサブセットは、コードグループのCSV文字列に指定に基づいて作成されます。 この CodeData は、本当のサブセットではなく、プルダウンメニューなどの選択肢のリストを 制限します。これは、一覧表示(レンデラー)では、すべての既存の設定値を表示しておく 必要があるからです。そして、変更時(エディター)に、選択肢を制限します。 引数の group が、null,ゼロ文字列、または、内部でグループを使用していない場合は、 自分自身を返します。(同一です) 引数の group も、内部設定のグループも、CSV形式CSV で複数のグループを指定できます。 この場合は、各グループのうち、どれか一つでも該当すれば、使用(true)になります。
      パラメータ:
        `group` - 指定のコードグループのCSV文字列
      戻り値:
        指定のgroupに所属する限定された CodeData
      変更履歴:
        5.1.9.0 (2010/08/01) 新規追加, 5.6.8.0 (2013/09/20) rawLongLabel対応, 6.2.0.0 (2015/02/27) description 概要説明 追加
      このメソッドは、nullを返しません

    - #### subsetRole

          public CodeData subsetRole​(RoleMode userRole)

      指定のコードに限定された CodeData を構築して返します。 このサブセットは、ロールの指定に基づいて作成されます。 この CodeData は、本当のサブセットではなく、プルダウンメニューなどの選択肢のリストを 制限します。これは、一覧表示(レンデラー)では、すべての既存の設定値を表示しておく 必要があるからです。そして、変更時(エディター)に、選択肢を制限します。 引数の role が、null または、内部でロールを使用していない場合は、自分自身を返します。(同一です)
      パラメータ:
        `userRole` - 指定のロール(ユーザーロール)
      戻り値:
        指定のコードに限定された CodeData
      変更履歴:
        5.1.9.0 (2010/08/01) 新規追加, 5.6.8.2 (2013/09/13) rawLongLabel対応, 6.2.0.0 (2015/02/27) description 概要説明 追加
      このメソッドは、nullを返しません

    - #### toString

          public String toString()

      オブジェクトの識別子として，詳細なコード情報を返します。
      オーバーライド:
        `toString` クラス内 `Object`
      戻り値:
        詳細なコード情報
      変更履歴:
        4.1.0.0 (2008/01/18) メソッド修正(改行コード削除)
      このメソッドは、nullを返しません