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 data)` 配列文字列のデータを元に、CodeDataオブジェクトを構築します。
    `CodeData(java.lang.String clm, java.util.Map 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 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 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を返しません

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