概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## ts.util.table
クラス Trigger<C,V>

    java.lang.Object
      ts.util.table.Trigger<C,V>

型パラメータ:
  `C` - カラム・キーのタイプ。
  `V` - カラムの値のタイプ。

すべての実装されたインタフェース:
  java.lang.Cloneable

直系の既知のサブクラス:
  ConstraintTrigger

    public abstract class Trigger<C,V>

extends java.lang.Object
implements java.lang.Cloneable

トリガ・クラス。
トリガは、登録先のテーブルが変更される直前及び直後に呼び出され、変更の種類 と変更の前後に応じたメソッドが実行される。
実行されるメソッドは、以下の通りである：

メソッド名 | 変更の種類 | 変更の前後
--- | --- | ---
preAppend | レコードの追加 | 変更前
postAppend | レコードの追加 | 変更後
preUpdate | レコードの更新 | 変更前
postUpdate | レコードの更新 | 変更後
preDelete | レコードの削除 | 変更前
postDelete | レコードの削除 | 変更後

実行されるメソッドに渡される引数は共通しており、以下のものが渡される：

- テーブル・オブジェクト
- 変更対象のレコード・オブジェクト
- 変更するカラム・キーとその値を格納したマップ・オブジェクト（変更の種類 が更新の場合のみ）

トリガ・オブジェクトは、 `Table.addTrigger(ts.util.table.Trigger)`メソッドを 使って追加されるが、テーブルの変更時に呼び出されるトリガ・オブジェクトは 追加されたオブジェクトそのものではなく、そのクローン・オブジェクトである。 そのため、フィールド変数を持たせて変更前と変更後で利用するようにしたトリガ を、複数のテーブルやマルチ・スレッドで利用しても支障はない。

バージョン:
  $Revision: 1.1.1.1 $, $Date: 2010-10-16 00:03:52 $
作成者:
  佐藤隆之.

入れ子のクラスの概要
`static class` | `Trigger.Action` テーブル変更の種類を示す列挙クラス。

コンストラクタの概要
`Trigger()` デフォルト・コンストラクタ。

メソッドの概要
`protected Trigger<C,V>` | `createClone()` このオブジェクトのクローン・オブジェクトを作成する。
`protected void` | `postAppend(Table<C,V> table, java.util.Map<C,V> record)` レコードの追加の直後に呼び出されるメソッド。
`protected void` | `postDelete(Table<C,V> table, java.util.Map<C,V> record)` レコードの削除の直後に呼び出されるメソッド。
`protected void` | `postDeleteAll(Table<C,V> table, java.util.Collection<java.util.Map<C,V>> coll)` 全てのレコードを削除した直後に呼び出されるメソッド。
`protected void` | `postUpdate(Table<C,V> table, java.util.Map<C,V> record, java.util.Map<C,V> destination)` レコードの更新の直後に呼び出されるメソッド。
`protected void` | `preAppend(Table<C,V> table, java.util.Map<C,V> record)` レコードの追加の直前に呼び出されるメソッド。
`protected void` | `preDelete(Table<C,V> table, java.util.Map<C,V> record)` レコードの削除の直前に呼び出されるメソッド。
`protected void` | `preDeleteAll(Table<C,V> table, java.util.Collection<java.util.Map<C,V>> coll)` 全てのレコードを削除する直前に呼び出されるメソッド。
`protected void` | `preUpdate(Table<C,V> table, java.util.Map<C,V> record, java.util.Map<C,V> destination)` レコードの更新の直前に呼び出されるメソッド。

クラス java.lang.Object から継承されたメソッド
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

コンストラクタの詳細

### Trigger

    public Trigger()

  デフォルト・コンストラクタ。

メソッドの詳細

### preAppend

    protected void preAppend(Table<C,V> table,
                             java.util.Map<C,V> record)

  レコードの追加の直前に呼び出されるメソッド。
  変更対象のレコード・オブジェクトの内容は空である。
  このクラスでは、このメソッドは何もしない。

  パラメータ:
    `table` - テーブル・オブジェクト。
    `record` - 追加されるレコード・オブジェクト。

### postAppend

    protected void postAppend(Table<C,V> table,
                              java.util.Map<C,V> record)

  レコードの追加の直後に呼び出されるメソッド。
  このクラスでは、このメソッドは何もしない。

  パラメータ:
    `table` - テーブル・オブジェクト。
    `record` - 追加されたレコード・オブジェクト。

### preUpdate

    protected void preUpdate(Table<C,V> table,
                             java.util.Map<C,V> record,
                             java.util.Map<C,V> destination)

  レコードの更新の直前に呼び出されるメソッド。
  変更対象のレコード・オブジェクトは、変更前の状態で渡される。
  このクラスでは、このメソッドは何もしない。

  パラメータ:
    `table` - テーブル・オブジェクト。
    `record` - 変更対象のレコード・オブジェクト。
    `destination` - 更新するカラム・キーとその値を格納したマップ。

### postUpdate

    protected void postUpdate(Table<C,V> table,
                              java.util.Map<C,V> record,
                              java.util.Map<C,V> destination)

  レコードの更新の直後に呼び出されるメソッド。
  変更対象のレコード・オブジェクトは、変更後の状態で渡される。
  このクラスでは、このメソッドは何もしない。

  パラメータ:
    `table` - テーブル・オブジェクト。
    `record` - 変更対象のレコード・オブジェクト。
    `destination` - 更新するカラム・キーとその値を格納したマップ。

### preDelete

    protected void preDelete(Table<C,V> table,
                             java.util.Map<C,V> record)

  レコードの削除の直前に呼び出されるメソッド。
  このクラスでは、このメソッドは何もしない。

  パラメータ:
    `table` - テーブル・オブジェクト。
    `record` - 変更対象のレコード・オブジェクト。

### postDelete

    protected void postDelete(Table<C,V> table,
                              java.util.Map<C,V> record)

  レコードの削除の直後に呼び出されるメソッド。
  このクラスでは、このメソッドは何もしない。

  パラメータ:
    `table` - テーブル・オブジェクト。
    `record` - 変更対象のレコード・オブジェクト。

### preDeleteAll

    protected void preDeleteAll(Table<C,V> table,
                                java.util.Collection<java.util.Map<C,V>> coll)

  全てのレコードを削除する直前に呼び出されるメソッド。
  引数のレコード・コレクションからレコードを順に取り出して、`preDelete(ts.util.table.Table,java.util.Map)`メソッドを実行している。

  パラメータ:
    `table` - テーブル・オブジェクト。
    `coll` - 削除対象のレコードを格納したコレクション。
  例外:
    `java.lang.AssertionError` - 引数がヌルの場合（デバッグ・モードのみ）。

### postDeleteAll

    protected void postDeleteAll(Table<C,V> table,
                                 java.util.Collection<java.util.Map<C,V>> coll)

  全てのレコードを削除した直後に呼び出されるメソッド。
  引数のレコード・コレクションからレコードを順に取り出して、 `postDelete(ts.util.table.Table,java.util.Map)`メソッドを実行して いる。

  パラメータ:
    `table` - テーブル・オブジェクト。
    `coll` - 削除対象のレコードを格納したコレクション。
  例外:
    `java.lang.AssertionError` - 引数がヌルの場合（デバッグ・モードのみ）。

### createClone

    protected Trigger<C,V> createClone()

  このオブジェクトのクローン・オブジェクトを作成する。

  戻り値:
    このオブジェクトのクローン・オブジェクト。

概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

Copyright (C) SATOH Takayuki All Rights Reserved.