org.opengion.hayabusa.db

## インタフェース DBTableModel

- すべてのスーパーインタフェース:
    DataModel
  既知の実装クラスのリスト:
    DBTableModelEditor, DBTableModelImpl, DBTableModelSorter

      public interface DBTableModel
      extends DataModel

       javax.swing.table.TableModel インターフェースを継承したデータベース情報を
       TableModel情報にマッピングするのに利用します。
       DataModel インターフェースを継承しています。

  機能分類
    テーブル管理
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドのサマリー

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static boolean` | `DEFAULT_CHECKED` 行指定用のチェックボックスに対して初期値を 選択済みにするか、 非選択済みにするかのデフォルト値を指定します。
    `static boolean` | `DEFAULT_WRITABLE` 行指定の書込み許可を与えます。
    `static String` | `DELETE_TYPE` 変更されたタイプ(削除)
    `static String` | `INSERT_TYPE` 変更されたタイプ(追加)
    `static String` | `UPDATE_TYPE` 変更されたタイプ(変更)

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド abstractメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `void` | `addColumnValues(String[] values)` row あるセルの属性値配列を追加登録します。
    `void` | `addColumnValues(String[] values, String modType, boolean rw)` row あるセルの属性値配列を追加登録します。
    `void` | `addMustType(int dbColumn, String type)` カラム(列)にmustタイプ値を割り当てます。
    `void` | `addValues(String[] values, int aRow)` row の下に属性値配列を追加登録します。
    `void` | `addValues(String[] values, int aRow, boolean isWritable)` row の下に属性値配列を追加登録します。
    `int` | `getColumnCount()` データテーブル内の列の数を返します。
    `String` | `getColumnLabel(int column)` カラムのラベル名を返します。
    `String` | `getColumnName(int column)` カラム名を取得します。
    `int` | `getColumnNo(String columnName, boolean useThrow)` カラム名をもとに、そのカラム番号を返します。
    `String` | `getConsistencyKey()` 検索されたDBTableModelが登録時に同一かどうかを判断する為の 整合性キーを取得します。
    `DBColumn` | `getDBColumn(int clm)` カラム(列)のカラムオブジェクトを返します。
    `DBColumn[]` | `getDBColumns()` カラムオブジェクト配列を返します。
    `String` | `getModifyType(int row)` row 単位に変更されたタイプ(追加/変更/削除)を返します。
    `String[]` | `getMustAnyArray()` mustType="mustAny" 他のカラム名を、CSV形式として返します。
    `String[]` | `getMustArray()` mustType="must"時のカラム名を、CSV形式として返します。
    `int` | `getRowCount()` データテーブル内の行の数を返します。
    `String` | `getValue(int aRow, String columnName)` row および columnName にあるセルの属性値をStringに変換して返します。
    `void` | `init(int columnCount)` このオブジェクトを初期化します。
    `boolean` | `isOverflow()` 検索結果が オーバーフローしたかどうかをチェックします。
    `boolean` | `isRowChecked(int row)` 書き込み可能な行(rowWritable == true)のチェックボックスに対して 初期値を 選択済みか、非選択済みかを返します。
    `boolean` | `isRowWritable(int aRow)` 書込み許可を返します。
    `DBTableModel` | `newModel()` このオブジェクトをヘッダー部分をコピーし、データを初期化します。
    `void` | `removeValue(int aRow)` 行を物理削除します。
    `void` | `resetModify()` 変更済みフラグを元に戻します。
    `void` | `resetModify(int aRow)` 変更済みフラグを元に戻します。
    `void` | `resetRow(int row)` 変更データを初期値(元の取り込んだ状態)に戻します。
    `void` | `rowDelete(int aRow)` 行を削除します。
    `void` | `rowDelete(String[] values, int aRow)` row にあるセルのオブジェクト値を置き換えて、行を削除します。
    `void` | `setDBColumn(int dbColumn, DBColumn clm)` カラム(列)にカラムオブジェクトを割り当てます。
    `void` | `setDefaultRowChecked(boolean rw)` 書き込み可能な行(rowWritable == true)のチェックボックスに対して 初期値を 選択済みにするか、非選択済みにするかを指定します。
    `void` | `setDefaultRowWritable(boolean rw)` 行指定の書込み許可を与えます。
    `void` | `setModifyType(int row, String modType)` row 単位に変更タイプ(追加/変更/削除)をセットします。
    `void` | `setOverflow(boolean of)` 検索結果が オーバーフローしたかどうかを設定します。
    `void` | `setRowChecked(int aRow, boolean rw)` 書き込み可能な行(rowWritable == true)のチェックボックスに対して 初期値を 選択済みにするか、非選択済みにするかを指定します。
    `void` | `setRowWritable(int aRow, boolean rw)` 行が書き込み可能かどうかをセットします。
    `void` | `setValue(int aRow, String columnName, String value)` column に対応した 値を登録します。
    `void` | `setValueAt(String value, int aRow, int aColumn)` column および row にあるセルのオブジェクト値を設定します。
    `void` | `setValues(String[] values, int aRow)` row にあるセルのオブジェクト値を置き換えます。

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

      `getColumnNo, getNames, getNativeType, getValue, getValues`

- - ### フィールドの詳細

    - #### DEFAULT_WRITABLE

          static final boolean DEFAULT_WRITABLE

      行指定の書込み許可を与えます。 具体的には,チェックボックスの表示/非表示を指定します。 これが true の場合は,書込み許可です。(チェックボックスを表示) false の場合は,書込み不許可(チェックボックスは表示されません。) 行毎に書込み許可/不許可を指定する場合は,１カラム目に writable カラムを用意して true/false を指定します。 この writable カラムとの論理積により最終的にチェックボックスの 表示の ON/OFF が決まります。 このデフォルト値は、true に設定されています。
      関連項目:
        定数フィールド値

    - #### DEFAULT_CHECKED

          static final boolean DEFAULT_CHECKED

      行指定用のチェックボックスに対して初期値を 選択済みにするか、 非選択済みにするかのデフォルト値を指定します。 このデフォルト値は、false に設定されています。
      関連項目:
        定数フィールド値

    - #### INSERT_TYPE

          static final String INSERT_TYPE

      変更されたタイプ(追加)
      関連項目:
        定数フィールド値

    - #### UPDATE_TYPE

          static final String UPDATE_TYPE

      変更されたタイプ(変更)
      関連項目:
        定数フィールド値

    - #### DELETE_TYPE

          static final String DELETE_TYPE

      変更されたタイプ(削除)
      関連項目:
        定数フィールド値

  - ### メソッドの詳細

    - #### init

          void init(int columnCount)

      このオブジェクトを初期化します。 指定の引数分の内部配列を作成します。 具体的には,DBColumn の数を指定することになります。
      パラメータ:
        `columnCount` - カラム数

    - #### newModel

          DBTableModel newModel()

      このオブジェクトをヘッダー部分をコピーし、データを初期化します。 これは、カラムなどヘッダー系の情報は、元と同じオブジェクトを共有し、 データ部のみ空にした DBTableModel を作成することを意味します。 この際、consistencyKey も複写しますので、整合性は崩れないように、 データ登録を行う必要があります。
      戻り値:
        DBTableModelオブジェクト
      変更履歴:

        4.0.0.0 (2007/06/28) 新規作成

    - #### getColumnLabel

          String getColumnLabel(int column)

      カラムのラベル名を返します。 カラムの項目名に対して,見える形の文字列を返します。 一般には,リソースバンドルと組合せて,各国ロケール毎にラベルを 切替えます。 セットされた DBColumn#getLabel( int ) の値が返されます。
      パラメータ:
        `column` - カラム番号
      戻り値:
        カラムのラベル名

    - #### getValue

          String getValue(int aRow,
                          String columnName)

      row および columnName にあるセルの属性値をStringに変換して返します。
      パラメータ:
        `aRow` - 値が参照される行
        `columnName` - 値が参照されるカラム名
      戻り値:
        指定されたセルの値 String
      関連項目:
        `DataModel.getValue( int , int )`

    - #### setDBColumn

          void setDBColumn(int dbColumn,
                           DBColumn clm)

      カラム(列)にカラムオブジェクトを割り当てます。 カラムオブジェクトは，ラベルやネームなど，そのカラム情報を 保持したオブジェクトです。
      パラメータ:
        `dbColumn` - カラムオブジェクト
        `clm` - ヘッダーを適応するカラム(列)

    - #### getDBColumn

          DBColumn getDBColumn(int clm)

      カラム(列)のカラムオブジェクトを返します。 カラムオブジェクトは，ラベルやネームなど，そのカラム情報を 保持したオブジェクトです。
      パラメータ:
        `clm` - ヘッダーを適応するカラム(列)
      戻り値:
        DBColumnカラムオブジェクト

    - #### getDBColumns

          DBColumn[] getDBColumns()

      カラムオブジェクト配列を返します。 カラムオブジェクトは，ラベルやネームなど，そのカラム情報を 保持したオブジェクトです。
      戻り値:
        カラムオブジェクト配列
      変更履歴:

        4.0.0.0 (2005/12/31) 新規追加

    - #### getColumnNo

          int getColumnNo(String columnName,
                          boolean useThrow)

      カラム名をもとに、そのカラム番号を返します。 useThrow が、true の場合は、カラム名が存在しない場合は､ HybsSystemException を throw します。useThrow が、false の場合は、カラム名が存在しない場合は､ -1 を返します。
      パラメータ:
        `columnName` - カラム名
        `useThrow` - カラム名が存在しない場合に、Exception を throw するかどうか
      戻り値:
        カラム番号
      変更履歴:

        4.0.0.0 (2005/12/31) 新規追加

    - #### resetModify

          void resetModify()

      変更済みフラグを元に戻します。 一般には,データベースにテーブルモデルを登録するタイミングで、 変更済みフラグを元に戻します。

    - #### resetRow

          void resetRow(int row)

      変更データを初期値(元の取り込んだ状態)に戻します。 変更タイプ(追加/変更/削除)に応じて、処理されます。 追加時は、追加された行を削除します。 変更時は、変更された行を元に戻します。 削除時は、削除フラグを解除します。 それ以外の場合(変更されていない場合)は、なにもしません。
      パラメータ:
        `row` - 処理を戻す(取り消す)行

    - #### getModifyType

          String getModifyType(int row)

      row 単位に変更されたタイプ(追加/変更/削除)を返します。
      パラメータ:
        `row` - 値が参照される行
      戻り値:
        変更されたタイプの値 String

    - #### setModifyType

          void setModifyType(int row,
                             String modType)

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

    - #### isRowWritable

          boolean isRowWritable(int aRow)

      書込み許可を返します。
      パラメータ:
        `aRow` - 値が参照される行
      戻り値:
        書込み可能(true)／不可能(false)

    - #### isRowChecked

          boolean isRowChecked(int row)

      書き込み可能な行(rowWritable == true)のチェックボックスに対して 初期値を 選択済みか、非選択済みかを返します。
      パラメータ:
        `row` - 値が参照される行
      戻り値:
        初期値チェックON(true)／チェックOFF(false)

    - #### isOverflow

          boolean isOverflow()

      検索結果が オーバーフローしたかどうかをチェックします。 Query で検索した場合に、DB_MAX_ROW_COUNT または、Query.setMaxRowCount( int maxRowCount ) で指定された値よりも検索結果が多い場合に、DBTableModel は、先の設定値までの データを取り込みます。そのときに、オーバーフローフラグを立てておくことで、最大件数を オーバーしたかどうかを判断します。
      戻り値:
        オーバーフロー(true)／正常(false)

    - #### getConsistencyKey

          String getConsistencyKey()

      検索されたDBTableModelが登録時に同一かどうかを判断する為の 整合性キーを取得します。 ここでの整合性は、同一セッション(ユーザー)毎にユニークかどうかで対応します。 分散環境(複数のセッション間)での整合性は、確保できません。 整合性キー は、オブジェクト作成時刻としますが、将来変更される可能性があります。
      戻り値:
        整合性キー(オブジェクトの作成時刻)
      変更履歴:

        3.5.5.5 (2004/04/23) 新規追加

    - #### getRowCount

          int getRowCount()

      データテーブル内の行の数を返します。
      戻り値:
        モデルの行数
      変更履歴:

        3.5.3.1 (2003/10/31) インターフェースの見直しにより、追加

    - #### getColumnCount

          int getColumnCount()

      データテーブル内の列の数を返します。
      戻り値:
        モデルの列数
      変更履歴:

        3.5.3.1 (2003/10/31) インターフェースの見直しにより、追加

    - #### getColumnName

          String getColumnName(int column)

      カラム名を取得します。
      パラメータ:
        `column` - 最初のカラムは 0、2番目のカラムは 1、などとする。
      戻り値:
        カラム名
      変更履歴:

        3.5.3.1 (2003/10/31) インターフェースの見直しにより、追加

    - #### setValue

          void setValue(int aRow,
                        String columnName,
                        String value)

      column に対応した 値を登録します。 column には、番号ではなく､ラベルを指定します。
      パラメータ:
        `aRow` - 値が変更される行
        `columnName` - 値が変更されるカラム名
        `value` - 新しい値。null も可
      変更履歴:

        3.5.6.4 (2004/07/16) interface に新規登録

    - #### setValueAt

          void setValueAt(String value,
                          int aRow,
                          int aColumn)

      column および row にあるセルのオブジェクト値を設定します。 value は新しい値です。このメソッドは、tableChanged() 通知を生成します。
      パラメータ:
        `value` - 新しい値。null も可
        `aRow` - 値が変更される行
        `aColumn` - 値が変更される列
      変更履歴:

        3.1.0.0 (2003/03/20) 同期メソッド(synchronized付き)を非同期に変更する。
        3.5.3.1 (2003/10/31) インターフェースの見直しにより、private 化する。
        4.0.0.0 (2007/05/24) インターフェースの見直しにより、public 化する。

    - #### rowDelete

          void rowDelete(int aRow)

      行を削除します。 物理削除ではなく、論理削除です。 データを取り込むことは可能です。
      パラメータ:
        `aRow` - 論理削除される行
      変更履歴:

        3.5.6.4 (2004/07/16) interface に新規登録

    - #### rowDelete

          void rowDelete(String[] values,
                         int aRow)

      row にあるセルのオブジェクト値を置き換えて、行を削除します。 物理削除ではなく、論理削除です。 値を置き換えたデータを取り込むことが可能です。
      パラメータ:
        `values` - 新しい配列値。
        `aRow` - 論理削除される行
      変更履歴:

        3.5.6.4 (2004/07/16) interface に新規登録

    - #### removeValue

          void removeValue(int aRow)

      行を物理削除します。 メモリ上で編集する場合に使用しますが,一般アプリケーションからの 使用は、物理削除の為,お勧めいたしません。
      パラメータ:
        `aRow` - 物理削除される行
      変更履歴:

        3.5.6.4 (2004/07/16) interface に新規登録

    - #### addValues

          void addValues(String[] values,
                         int aRow)

      row の下に属性値配列を追加登録します。
      パラメータ:
        `values` - 属性値配列
        `aRow` - 値が参照される行
      変更履歴:

        3.5.6.4 (2004/07/16) interface に新規登録

    - #### addValues

          void addValues(String[] values,
                         int aRow,
                         boolean isWritable)

      row の下に属性値配列を追加登録します。 isWritableをfalseにした場合、編集不可能な状態で追加されます。
      パラメータ:
        `values` - 属性値配列
        `aRow` - 値が参照される行
        `isWritable` - 編集不可能な状態で追加するか
      変更履歴:

        4.3.1.0 (2008/09/04) interface に新規登録

    - #### addColumnValues

          void addColumnValues(String[] values)

      row あるセルの属性値配列を追加登録します。 これは,初期登録時のみに使用します。
      パラメータ:
        `values` - 属性値配列
      変更履歴:

        3.5.6.4 (2004/07/16) interface に新規登録

    - #### addColumnValues

          void addColumnValues(String[] values,
                               String modType,
                               boolean rw)

      row あるセルの属性値配列を追加登録します。 これは,初期登録時のみに使用します。 このメソッドでは、同時に、変更タイプ と、書込み許可を指定できます。
      パラメータ:
        `values` - 属性値配列
        `modType` - 変更タイプ(追加/変更/削除)
        `rw` - 書込み可能(true)／不可能(false)
      変更履歴:

        6.2.2.0 (2015/03/27) interface に変更タイプ と、書込み許可を追加

    - #### setValues

          void setValues(String[] values,
                         int aRow)

      row にあるセルのオブジェクト値を置き換えます。
      定義:
        `setValues` インタフェース内 `DataModel`
      パラメータ:
        `values` - 新しい配列値。
        `aRow` - 値が変更される行
      変更履歴:

        3.5.6.4 (2004/07/16) interface に新規登録

    - #### resetModify

          void resetModify(int aRow)

      変更済みフラグを元に戻します。 一般には,データベースにテーブルモデルを登録するタイミングで、 変更済みフラグを元に戻します。
      パラメータ:
        `aRow` - 値が参照される行
      変更履歴:

        3.5.6.4 (2004/07/16) interface に新規登録

    - #### setRowWritable

          void setRowWritable(int aRow,
                              boolean rw)

      行が書き込み可能かどうかをセットします。 デフォルト/およびなにも設定しない場合は, DEFAULT_WRITABLE が 与えられています。 これが true の場合は,書込み許可です。(チェックボックスを表示) false の場合は,書込み不許可(チェックボックスは表示されません。)
      パラメータ:
        `aRow` - 値が参照される行
        `rw` - 書込み可能(true)／不可能(false)
      変更履歴:

        3.5.6.4 (2004/07/16) interface に新規登録

    - #### setRowChecked

          void setRowChecked(int aRow,
                             boolean rw)

      書き込み可能な行(rowWritable == true)のチェックボックスに対して 初期値を 選択済みにするか、非選択済みにするかを指定します。
      パラメータ:
        `aRow` - 値が参照される行
        `rw` - チェックON(true)／チェックOFF(false)
      変更履歴:

        3.5.6.4 (2004/07/16) interface に新規登録

    - #### setDefaultRowWritable

          void setDefaultRowWritable(boolean rw)

      行指定の書込み許可を与えます。 具体的には,チェックボックスの表示/非表示を指定します。 これが true の場合は,書込み許可です。(チェックボックスを表示) false の場合は,書込み不許可(チェックボックスは表示されません。) 行毎に書込み許可/不許可を指定する場合は,１カラム目に writable カラムを用意して true/false を指定します。 この writable カラムとの論理積により最終的にチェックボックスの 表示の ON/OFF が決まります。 なにも設定しない場合は, ViewForm.DEFAULT_WRITABLE が設定されます。
      パラメータ:
        `rw` - 書込み可能(true)／不可能(false)
      変更履歴:

        3.5.6.4 (2004/07/16) interface に新規登録

    - #### setDefaultRowChecked

          void setDefaultRowChecked(boolean rw)

      書き込み可能な行(rowWritable == true)のチェックボックスに対して 初期値を 選択済みにするか、非選択済みにするかを指定します。
      パラメータ:
        `rw` - 選択状態(true)／非選択状態(false)
      変更履歴:

        3.5.6.4 (2004/07/16) interface に新規登録

    - #### setOverflow

          void setOverflow(boolean of)

      検索結果が オーバーフローしたかどうかを設定します。 Query で検索した場合に、DB_MAX_ROW_COUNT または、Query.setMaxRowCount( int maxRowCount ) で指定された値よりも検索結果が多い場合に、DBTableModel は、先の設定値までの データを取り込みます。そのときに、オーバーフローフラグを立てておくことで、最大件数を オーバーしたかどうかを判断します。
      パラメータ:
        `of` - オーバーフロー(true)／正常(false)
      変更履歴:

        3.5.6.4 (2004/07/16) interface に新規登録

    - #### addMustType

          void addMustType(int dbColumn,
                           String type)

      カラム(列)にmustタイプ値を割り当てます。 この値は、columnCheck 時の nullCheck や mustAnyCheck の チェック対象カラムとして認識されます。
      パラメータ:
        `dbColumn` - カラムオブジェクト
        `type` - mustタイプ(must,mustAny)
      変更履歴:

        4.1.2.1 (2008/03/13) interface に新規登録

    - #### getMustArray

          String[] getMustArray()

      mustType="must"時のカラム名を、CSV形式として返します。 この値は、columnCheck 時の nullCheck のチェック対象カラムとして 認識されます。 カラム名配列は、ソート済みです。
      戻り値:
        mustType="must"時のカラム名配列(ソート済み)
      変更履歴:

        4.1.2.1 (2008/03/13) interface に新規登録

    - #### getMustAnyArray

          String[] getMustAnyArray()

      mustType="mustAny" 他のカラム名を、CSV形式として返します。 この値は、columnCheck 時の mustAnyCheck のチェック対象カラムとして 認識されます。 カラム名配列は、ソート済みです。
      戻り値:
        mustType="mustAny"時のカラム名配列(ソート済み)
      変更履歴:

        4.1.2.1 (2008/03/13) interface に新規登録

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