19.1.3 ユーザイベントハンドラが動作する条件の限定
ユーザイベントハンドラが動作する条件を,フィルタを掛けることで限定できます。
フィルタには次の2種類があります。なお,2種類のフィルタを同時に指定できます。
-
オペレーションタイプフィルタ
-
データフィルタ
(1) オペレーションタイプフィルタ
データ操作の種類に応じてユーザイベントハンドラが動作するかどうかを決定します。
-
データの格納処理
該当するデータの格納処理を次に示します。
-
Cacheクラス,またはGroupインタフェースのメソッド(put(),replace(),create(),update())
-
eztool putコマンド
-
-
データの削除処理
該当するデータの削除処理を次に示します。
-
Cacheクラス,またはGroupインタフェースのメソッド(remove())
-
eztool removeコマンド
-
オペレーションタイプフィルタは,EventHandlerインタフェースを実装したクラスにOperationFilterアノテーションを付けることで設定します。
(2) データフィルタ
操作が行われたデータのキャッシュ名,グループ名,および要素名に応じてユーザイベントハンドラが動作するかどうかを決定します。
データフィルタは,EventHandlerインタフェースを実装したクラスにDataFilterアノテーションを付けることで設定します。
データフィルタが無効の場合,ユーザイベントハンドラは動作しません。
-
キャッシュ名のフィルタリング
指定したキャッシュ名と完全一致した場合にユーザイベントハンドラが動作します。
-
グループ名のフィルタリング
指定したグループ名が階層単位で完全一致した場合にユーザイベントハンドラが動作します。
-
要素名のフィルタリング
指定した要素名と前方一致した場合にユーザイベントハンドラが動作します。
キャッシュ名,グループ名,および要素名のデータフィルタを組み合わせて,フィルタを掛けることができます。
- ポイント
-
例えば,キャッシュ名のフィルタリングとグループ名のフィルタリングの両方でフィルタを掛ける場合,それぞれのデータフィルタが有効になるときだけ,ユーザイベントハンドラが動作します。
(3) グループ名および要素名のデータフィルタが有効となる指定範囲の例
グループ名および要素名のデータフィルタが有効となる指定範囲の例を,次の図に示します。
グループ名のデータフィルタは,指定したグループ名が階層単位で完全一致した場合に有効となります。この図の場合,グループ名のデータフィルタは「Tel:Number」または「Tel」と指定すると有効となります。なお,「Tel:Number:1234-56-7890」のように,グループ名以外(要素名など)を指定すると無効となります。
要素名のデータフィルタは,指定した要素名と前方一致した場合に有効となります。この図の場合,「12」や「1234-56-7890」のように指定すると有効となります。なお,「Tel」や「7890」のように,要素名以外(グループ名など)を指定したり,前方一致していなかったりすると無効となります。