パッケージ org.opengion.fukurou.business

## クラス ArrayTableModel

- java.lang.Object
- - org.opengion.fukurou.business.ArrayTableModel

- すべての実装されたインタフェース:
    `DataModel<String>`

      public class ArrayTableModel
      extends Object
      implements DataModel<String>

  業務ロジックを処理するためのテーブルモデルです。 このテーブルモデルでは、オブジェクト生成時に、カラム配列、値配列を元に、内部データを生成し、 その後は、行の追加や値の変更はできません。
  変更履歴:
    5.1.1.0 (2009/12/01) 新規作成
  機能分類
    業務ロジック
  バージョン
    5.0
  作成者
    Hiroki Nakamura
  導入されたバージョン:
    JDK1.6,

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

    - ### インタフェースから継承されたフィールド org.opengion.fukurou.model.DataModel

      `DELETE_TYPE, INSERT_TYPE, UPDATE_TYPE`

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

    コンストラクタ
    コンストラクタ | 説明
    --- | ---
    `ArrayTableModel​(String[] nms, String[][] vs)` | 引数に名前配列、値配列を指定したコンストラクター
    `ArrayTableModel​(String[] nms, String[][] vs, String[] ms)` | 引数に名前配列、値配列、変更区分配列を指定したコンストラクター

  - ### メソッドの概要

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `int` | `getColumnNo​(String columnName)` | カラム名に対応する カラム番号を返します。
    `int[]` | `getColumnNos​(String[] clmNms)` | カラム名配列に対応する カラム番号配列を返します。
    `String` | `getModifyType​(int row)` | row 単位に変更されたタイプ(追加/変更/削除)を返します。
    `ConcurrentMap<Integer,​String[]>` | `getModifyVals()` | BizLogicで、データが変更された場合は、このMapで値の配列を返します。
    `String[]` | `getNames()` | カラム名配列を返します。
    `NativeType` | `getNativeType​(int clm)` | clm のNativeタイプを返します。
    `int` | `getRowCount()` | データテーブル内の行の数を返します。
    `String` | `getValue​(int row, int clm)` | row および clm にあるセルの属性値をStringに変換して返します。
    `String` | `getValue​(int row, String clm)` | row および clm にあるセルの属性値をStringに変換して返します。
    `String[]` | `getValues​(int row)` | row にあるセルの属性値を配列で返します。
    `protected String[][]` | `getValues​(String... clmNms)` | 指定のカラム名引数に相当するデータを２重配列で返します。
    `void` | `setModifyType​(int row, String modType)` | row 単位に変更タイプ(追加/変更/削除)をセットします。
    `void` | `setValues​(String[] inVals, int rowNo)` | rowで指定された行番号(インデックス番号)に行を追加します。
    `String` | `toString()` | このオブジェクトの文字列表記を返します。

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

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

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

    - #### ArrayTableModel

          public ArrayTableModel​(String[] nms,
                                 String[][] vs)

      引数に名前配列、値配列を指定したコンストラクター
      パラメータ:
        `nms` - 名前配列
        `vs` - 値２重配列
      例外:
        `IllegalArgumentException` - 引数の配列が不正な場合

    - #### ArrayTableModel

          public ArrayTableModel​(String[] nms,
                                 String[][] vs,
                                 String[] ms)

      引数に名前配列、値配列、変更区分配列を指定したコンストラクター
      パラメータ:
        `nms` - 名前配列
        `vs` - 値２重配列
        `ms` - 変更区分の配列
      例外:
        `IllegalArgumentException` - 引数の配列が不正な場合
      変更履歴:
        5.6.7.0 (2013/07/27) エラーメッセージを判りやすくする。, 5.7.2.3 (2014/01/31) vsのチェック条件を戻す, 5.7.3.1 (2014/02/14) nmsのチェック条件も戻す

  - ### メソッドの詳細

    - #### setValues

          public void setValues​(String[] inVals,
                                int rowNo)

      rowで指定された行番号(インデックス番号)に行を追加します。 値配列をセットする場合は、以下の条件を満たす必要があります。 １．行番号は、0～(rowCount-1) の範囲 ２．値配列は、not null、 かつ １件以上 ３．値配列の個数は、内部カラム数と同じ ここで登録した値は、内部の値配列と別管理されますので、セット後に、再びゲットしても ここでセットした値を取り出すことはできません。 また、同じ行番号でセットした場合は、後でセットした値が有効です。 ※ ここでの更新時に、modifyType は、設定されません。 必要であれば、setModifyType メソッドで個別に設定してください。 ※ インデックス(row)とは、このArrayTableModel に持つ vals 配列の行のインデックスです。 よって、オリジナルのDBTableModelの行番号ではありません。
      定義:
        `setValues` インタフェース内 `DataModel<String>`
      パラメータ:
        `inVals` - 配列値
        `rowNo` - 追加するインデックス
      例外:
        `IllegalArgumentException` - 引数が１，２，３の条件を満たさない場合。
      変更履歴:
        5.6.0.3 (2012/01/24) 変更された値を、書き戻す機能を追加します。, 6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。

    - #### getModifyVals

          public ConcurrentMap<Integer,​String[]> getModifyVals()

      BizLogicで、データが変更された場合は、このMapで値の配列を返します。 Mapのキーは、インデックス(row)のIntegerオブジェクトです。値は、設定された String配列です。 なにも変更がされていなければ、空のConcurrentMapを返しましす。 ※ インデックス(row)とは、このArrayTableModel に持つ vals 配列の行のインデックスです。 よって、オリジナルのDBTableModelの行番号ではありません。
      戻り値:
        書き戻すためのMap＜インデックス,値配列＞
      関連項目:
        `AbstractBizLogic.isRequireTable()`
      変更履歴:
        5.6.0.3 (2012/01/24) 変更された値を、書き戻すためのMap<インデックス,値配列> を返します。, 6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。, 6.4.3.3 (2016/03/04) 変更が無い場合は、nulllではなく、空のConcurrentMapを返しましす。
      このメソッドは、nullを返しません

    - #### getColumnNo

          public int getColumnNo​(String columnName)

      カラム名に対応する カラム番号を返します。 特殊なカラムが指定された場合は、負の値を返します。 例えば、[KEY.カラム名]、[I]、[ROW.ID] など、特定の負の値を返します。 また、カラム名が元のデータモデルに存在しない場合も、負の値か、 Exception を返します。負の値なのか、Exception なのかは、 実装に依存します。
      定義:
        `getColumnNo` インタフェース内 `DataModel<String>`
      パラメータ:
        `columnName` - 値が参照されるカラム名
      戻り値:
        指定されたセルのカラム番号。存在しなければ、-1
      例外:
        `IllegalArgumentException` - 引数のカラム名が null の場合

    - #### getColumnNos

          public int[] getColumnNos​(String[] clmNms)

      カラム名配列に対応する カラム番号配列を返します。 これは、#getColumnNo( String ) に対する 複数のカラム名を検索した 場合と同じです。
      パラメータ:
        `clmNms` - 値が参照されるカラム名配列(可変長引数)
      戻り値:
        指定されたセルのカラム番号配列。
      変更履歴:
        6.8.6.0 (2018/01/19) 可変長引数から、通常配列に変更。
      このメソッドは、nullを返しません

    - #### getNames

          public String[] getNames()

      カラム名配列を返します。
      定義:
        `getNames` インタフェース内 `DataModel<String>`
      戻り値:
        カラム名配列
      このメソッドは、nullを返しません

    - #### getValues

          protected String[][] getValues​(String... clmNms)

      指定のカラム名引数に相当するデータを２重配列で返します。
      パラメータ:
        `clmNms` - 値が参照されるカラム名配列(可変長引数)
      戻り値:
        指定された名引数に相当するデータの２重配列
      変更履歴:
        6.8.5.0 (2018/01/09) 新規追加
      このメソッドは、nullを返しません

    - #### getValues

          public String[] getValues​(int row)

      row にあるセルの属性値を配列で返します。
      定義:
        `getValues` インタフェース内 `DataModel<String>`
      パラメータ:
        `row` - 値が参照される行
      戻り値:
        指定されたセルの属性値配列
      このメソッドは、nullを返しません

    - #### getValue

          public String getValue​(int row,
                                 int clm)

      row および clm にあるセルの属性値をStringに変換して返します。
      定義:
        `getValue` インタフェース内 `DataModel<String>`
      パラメータ:
        `row` - 値が参照される行
        `clm` - 値が参照される列
      戻り値:
        指定されたセルの値

    - #### getValue

          public String getValue​(int row,
                                 String clm)

      row および clm にあるセルの属性値をStringに変換して返します。
      パラメータ:
        `row` - 値が参照される行
        `clm` - 値が参照される列(キー)
      戻り値:
        指定されたセルの値

    - #### getRowCount

          public int getRowCount()

      データテーブル内の行の数を返します。
      定義:
        `getRowCount` インタフェース内 `DataModel<String>`
      戻り値:
        モデルの行数

    - #### getModifyType

          public String getModifyType​(int row)

      row 単位に変更されたタイプ(追加/変更/削除)を返します。 タイプは始めに一度登録するとそれ以降に変更はかかりません。 つまり、始めに 追加で作成したデータは、その後変更があっても追加のままです。 なにも変更されていない場合は, ""(ゼロストリング)を返します。
      定義:
        `getModifyType` インタフェース内 `DataModel<String>`
      パラメータ:
        `row` - 値が参照される行
      戻り値:
        変更されたタイプの値

    - #### setModifyType

          public void setModifyType​(int row,
                                    String modType)

      row 単位に変更タイプ(追加/変更/削除)をセットします。 このメソッドでは、データのバックアップは取りません。 タイプは始めに一度登録するとそれ以降に変更はかかりません。 なにも変更されていない場合は, ""(ゼロストリング)の状態です。
      定義:
        `setModifyType` インタフェース内 `DataModel<String>`
      パラメータ:
        `row` - 値が参照される行
        `modType` - 変更タイプ(追加/変更/削除)
      変更履歴:
        6.7.9.1 (2017/05/19) インターフェースの見直しにより、追加

    - #### getNativeType

          public NativeType getNativeType​(int clm)

      clm のNativeタイプを返します。 Nativeタイプはorg.opengion.fukurou.model.NativeTypeで定義されています。
      定義:
        `getNativeType` インタフェース内 `DataModel<String>`
      パラメータ:
        `clm` - 値が参照される列
      戻り値:
        Nativeタイプ
      関連項目:
        `NativeType`
      変更履歴:
        5.1.8.0 (2010/07/01) NativeType#getType(String) のメソッドを使用するように変更。

    - #### toString

          public String toString()

      このオブジェクトの文字列表記を返します。 デバッグ用です。
      オーバーライド:
        `toString` クラス内 `Object`
      戻り値:
        文字列表現
      関連項目:
        `Object.toString()`
      変更履歴:
        5.6.7.0 (2013/07/27) 新規追加
      このメソッドは、nullを返しません