診断モジュール: カスタム監視の作成
このページでは、カスタム診断監視を作成します。
構成オプション
名前 説明 モニター名 カスタム監視の名前。
説明 このカスタム監視の説明。
場所のタイプ 診断アクションがトリガーされる、ジョインポイントを基準とした相対的な場所。ジョインポイントとは、クラスに含まれるメソッドや、メソッド内の呼出し位置などの、特定の場所です。場所には次を使用できます。
- 「前」は、診断アクティビティがジョインポイントの前に行われるように指定します。
- 「後」は、診断アクティビティがジョインポイントの後に行われるように指定します。
- 「前後」は、診断アクティビティがジョインポイントの前と後の両方に行われるように指定します。
ポイントカット ポイントカットを定義する式。ポイントカットは、ジョインポイントのセットを指定する式です。
カスタム・モニターでは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ブール演算子と組み合わせて、複雑なポイントカット式ツリーを構築できます。