診断モジュール : カスタム モニタの作成
このページでは、カスタム診断モニタを作成します。
コンフィグレーション オプション
名前 説明 モニタ名 カスタム モニタの名前。
説明 このカスタム モニタの説明。
場所の種類 診断アクションがトリガされる、ジョインポイントを基準とした相対的な場所。ジョインポイントとは、クラスに含まれるメソッドや、メソッド内の呼び出し位置などの、特定の場所です。次のような場所を指定できます。
- [前] は、診断アクティビティがジョインポイントの前に行われるように指定する。
- [後] は、診断アクティビティがジョインポイントの後に行われるように指定する。
- [前後] は、診断アクティビティがジョインポイントの前と後の両方に行われるように指定する。
ポイントカット ポイントカットを定義する式。ポイントカットは、一連のジョインポイントを指定する式です。
カスタム モニタに 2 種類のポイントカットを指定できます。
- call : メソッドの呼び出し時にアクションを起こします。
- execution : メソッドの実行時にアクションを起こします。
ポイントカット式を定義する構文は、次のとおりです。
pointcutExpr := orExpr ('OR' orExpr ) *
orExpr := andExpr ( 'AND' andExpr ) *
andExpr := 'NOT' ? termExpr
termExpr := exec_pointcut | call_pointcut | '(' pointcutExpr '}'
exec_pointcut := 'execution' '(' modifiers?
returnSpec
classSpecWithAnnotions
methodSpec '(' parameterList ')'
')'
call_pointcut := 'call' '(' returnSpec
classSpec
methodSpec '(' parameterList ')'
')'
modifiers := modifier ( 'OR' modifier ) * modifier := 'public' | 'protected' | 'private' | 'static'
returnSpec := '*' typeSpec
classSpecWithAnnotations := '@' IDENTIFIER ( 'OR' IDENTIFIER ) * | classSpec
classSpec := '+' ? classOrMethodPattern | '*'
typeSpec := ( primitiveType | classSpec ) ( '[]' )*
methodSpec := classOrMethodPattern
parameterList := param ( ',' param ) *
param := typeSpec | '...'
primitiveType := 'byte' | 'char' | 'boolean' | 'short' | 'int' | 'float' | 'long' | 'double' | 'void'
classOrMethodPattern := '*' ? IDENTIFIER '*'? | '*'次のルールが適用されます。
- クラスの型とメソッド名にワイルドカード (*) を使用できる。
- 引数リストの省略記号 (...) は、その引数以外に任意の型の引数がいくつか (数は可変) あることを示す。
- クラスの型に付いたプレフィックス + (プラス記号) は、指定のクラスまたはインタフェース パターンを実装しているすべてのサブクラス、サブインタフェース、または具象クラスを示す。
- ポイントカット式は、適合するジョインポイントを識別するパターンを指定する。ジョインポイントをそのパターンと照合すると、有効な適合かどうかを示すブール値が返されます。
- ポイントカット式をブール演算子 AND、OR、NOT と組み合わせて、複雑なポイントカット式ツリーを構築できる。