パッケージ 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) 新規作成
機能分類
  業務ロジック
導入されたバージョン:
  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)`
  引数に名前配列、値配列、変更区分配列を指定したコンストラクター

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `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を返しません