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`
    `static int` | `CODE_PARAM`
    `static int` | `CODEGRP`
    `static int` | `CODELVL`
    `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(String clm, Map<String,String[]> data)` 配列文字列のデータを元に、CodeDataオブジェクトを構築します。
    `CodeData(String clm, Map<String,String[]> data, boolean[] useFlag)` 配列文字列のデータを元に、CodeDataオブジェクトを構築します。

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `int` | `getAddress(String key)` マッチするコードデータのアドレスを返します。
    `String` | `getCodeKey(int seqNo)` コードデータのキーを返します。
    `String` | `getCodeLebel(int seqNo)` コード階層を返します。
    `String` | `getCodeParam(int seqNo)` コードパラメータを返します。
    `String` | `getColumn()` コードデータのキーを返します。
    `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)` このコードが、使用できるかどうかを、返します。
    `Map<String,String>` | `makeLabelMap()` longLabel をキーとした、コードのマップを構築して返します。
    `CodeData` | `subsetGroup(String group)` 指定のgroupに所属する限定された CodeData を構築して返します。
    `CodeData` | `subsetList(String codeCsv)` 指定のコードに限定された CodeData を構築して返します。
    `CodeData` | `subsetRole(RoleMode userRole)` 指定のコードに限定された CodeData を構築して返します。
    `String` | `toCodeString()` オブジェクトの識別子として，詳細なコード情報を返します。
    `String` | `toString()` オブジェクトの識別子として，詳細なコード情報を返します。
    `boolean` | `useGroup()` コードグループを利用するかどうかを返します。
    `boolean` | `useLebel()` コードレベル機能を利用するかどうかを返します。
    `boolean` | `useMultiSelect()` マルチ・キーセレクトを使用するかどうかを返します。
    `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

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

    - #### MAX_LENGTH

          public static final int MAX_LENGTH

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

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

    - #### CodeData

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

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

        5.1.9.0 (2010/08/01) 新規追加

    - #### CodeData

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

      配列文字列のデータを元に、CodeDataオブジェクトを構築します。 このコンストラクタは、他のパッケージから呼び出せないように、 パッケージプライベートにしておきます。 このコンストラクタは、マスタリソースファイルを想定しています。
      パラメータ:
        `clm` - カラム名
        `data` - CLM,CODE,LNAME,SNAME,CODELVL,CODEGRP,CODE_PARAM,ROLES,SYSTEM_ID,KBSAKU,RSNAMEの順番の文字列配列を格納
      変更履歴:

        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追加

  - ### メソッドの詳細

    - #### 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` - 表示順
      戻り値:
        コードデータの短縮表示名

    - #### getCodeLebel

          public String getCodeLebel(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()

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

    - #### useMultiSelect

          public boolean useMultiSelect()

      マルチ・キーセレクトを使用するかどうかを返します。 true：使用する。false:使用しない です。 使用するにした場合でも、ラベルの先頭文字が重複しない場合は、 IEの自動選択機能によりセレクト可能なため、JavaScript は出力しません。
      戻り値:
        選択リストで、マルチ・キーセレクトを使用するかどうか(true:使用する)

    - #### useLebel

          public boolean useLebel()

      コードレベル機能を利用するかどうかを返します。 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:使用しない です。 このコードグループは、リソースの引数で設定した カンマ区切り文字列に 対して、値が設定されていたかどうかを返します。 これにより、不要な処理を行う必要がなくなります。
      戻り値:
        パラメータを利用するかどうか(初期値: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) 新規追加

    - #### 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対応

    - #### subsetGroup

          public CodeData subsetGroup(String group)

      指定のgroupに所属する限定された CodeData を構築して返します。 このサブセットは、コードグループのCSV文字列に指定に基づいて作成されます。 この CodeData は、本当のサブセットではなく、プルダウンメニューなどの選択肢のリストを 制限します。これは、一覧表示(レンデラー)では、すべての既存の設定値を表示しておく 必要があるからです。そして、変更時(エディター)に、選択肢を制限します。 引数の group が、null,ゼロ文字列、または、内部でグループを使用していない場合は、 自分自身を返します。(同一です) 引数の group も、内部設定のグループも、カンマ区切りCSV で複数のグループを指定できます。 この場合は、各グループのうち、どれか一つでも該当すれば、使用(true)になります。
      パラメータ:
        `group` - 指定のコードグループのCSV文字列
      戻り値:
        指定のgroupに所属する限定された CodeData
      変更履歴:

        5.1.9.0 (2010/08/01) 新規追加
        5.6.8.0 (2013/09/20) rawLongLabel対応

    - #### 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対応

    - #### makeLabelMap

          public Map<String,String> makeLabelMap()

      longLabel をキーとした、コードのマップを構築して返します。 これは、ラベルからコード値を見つけるのに使用します。 ラベルからコード値の逆引きは、同一ラベルが存在する場合がありうるので 参考情報としてしか、利用できません。 また、ラベルも、短ラベルにたいするコードのマップを作成したい場合もありますが、 現時点では、対応していません。 (マップに、短ラベル情報も登録すれば、対応可能ですが、ラベルが重複する割合が増えます。) 主な想定用途は、Rendere で出力したファイルを取り込むときに、ラベルからコードを 探す場合です。
      戻り値:
        コードのマップ
      変更履歴:

        5.2.1.0 (2010/10/01) 新規追加

    - #### toString

          public String toString()

      オブジェクトの識別子として，詳細なコード情報を返します。
      オーバーライド:
        `toString` クラス内 `Object`
      戻り値:
        詳細なコード情報
      変更履歴:

        4.1.0.0 (2008/01/18) メソッド修正(改行コード削除)

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