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

## クラス CodeData

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

-     public final class CodeData
      extends java.lang.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` |
    `static int` | `CODE_PARAM` |
    `static int` | `CODEGRP` |
    `static int` | `CODELVL` |
    `static int` | `DESCRIPT` |
    `static int` | `KBSAKU` |
    `static int` | `LNAME` |
    `static int` | `MAX_LENGTH` |
    `static int` | `RLNAME` |
    `static int` | `ROLES` |
    `static int` | `RSNAME` |
    `static int` | `SNAME` |
    `static int` | `SYSTEM_ID` |

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

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

  - ### メソッドの概要

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

      関連項目:
        定数フィールド値

    - #### LNAME

          public static final int LNAME

      関連項目:
        定数フィールド値

    - #### SNAME

          public static final int SNAME

      関連項目:
        定数フィールド値

    - #### CODELVL

          public static final int CODELVL

      関連項目:
        定数フィールド値

    - #### CODEGRP

          public static final int CODEGRP

      関連項目:
        定数フィールド値

    - #### CODE_PARAM

          public static final int CODE_PARAM

      関連項目:
        定数フィールド値

    - #### ROLES

          public static final int ROLES

      関連項目:
        定数フィールド値

    - #### SYSTEM_ID

          public static final int SYSTEM_ID

      関連項目:
        定数フィールド値

    - #### KBSAKU

          public static final int KBSAKU

      関連項目:
        定数フィールド値

    - #### RSNAME

          public static final int RSNAME

      関連項目:
        定数フィールド値

    - #### RLNAME

          public static final int RLNAME

      関連項目:
        定数フィールド値

    - #### DESCRIPT

          public static final int DESCRIPT

      関連項目:
        定数フィールド値

    - #### MAX_LENGTH

          public static final int MAX_LENGTH

      関連項目:
        定数フィールド値

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

    - #### CodeData

          CodeData​(java.lang.String clm,
                   java.util.Map<java.lang.String,​java.lang.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​(java.lang.String clm,
                   java.util.Map<java.lang.String,​java.lang.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 java.lang.String getColumn()

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

    - #### getCodeKey

          public java.lang.String getCodeKey​(int seqNo)

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

    - #### getLongLabel

          public java.lang.String getLongLabel​(int seqNo)

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

    - #### getShortLabel

          public java.lang.String getShortLabel​(int seqNo)

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

    - #### getCodeLevel

          public java.lang.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 java.lang.String getCodeParam​(int seqNo)

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

    - #### getRoles

          public java.lang.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​(java.lang.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 java.lang.String toCodeString()

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

    - #### getRawShortLabel

          public java.lang.String getRawShortLabel​(int seqNo)

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

    - #### getRawLongLabel

          public java.lang.String getRawLongLabel​(int seqNo)

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

    - #### getDescription

          public java.lang.String getDescription​(int seqNo)

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

    - #### subsetList

          public CodeData subsetList​(java.lang.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​(java.lang.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 java.lang.String toString()

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