一致条件
(matchConditions オブジェクトで定義される)一致条件を使用して、パラメータ値、戻り値、または呼び出されたオブジェクトから返された値に基づく一致条件を指定することで、メソッドの一致基準を絞り込むことができます。
一致条件はオプションですが、インフォメーションポイントに1つだけ設定できます。一致条件を設定しない場合、インフォメーションポイントには一致したメソッドのすべての呼び出しが含まれます。
条件は、一致タイプと、比較するデータを定義する比較演算子で構成されます。一致タイプは以下のとおりです。
- EQUALS
- NOT_EQUALS
- LT
- GT
- LE
- GE
- 以下ではありません。
- および
- または
比較演算子は、演算の左辺(lhs)と右辺(rhs))を定義する式ノードです。内容は以下のとおりです。
- タイプ:
ENTITY、STRING、またはINTEGER - 値:
entityValue、stringValue、またはintegerValue
タイプが ENTITY の場合、entityValue のタイプは INVOKED_OBJECT、RETURN_VALUE、PARAMETER のいずれかになります。entityValue のタイプが PARAMETER の場合、parameterIndex は照合するパラメータのゼロベースの数値インデックスを示します。たとえば、メソッドが 2 つのパラメータ(1 つ目が文字列、2 つ目が整数)を取る場合、parameterIndex を 0 にすると文字列と照合され、parameterIndex を 1 にすると整数値と照合されます。
次の例のインフォメーションポイントは、(パラメータインデックス 1 の)2 つ目のパラメータが VISA と等しい processPayment メソッドの呼び出しとのみ一致します。
{
"probe": {
"phpDefinition": {
"methodMatch": {
"methodNameCondition": {
"type": "EQUALS",
"matchStrings": [
"processPayment"
]
},
"matchCondition": {
"type": "EQUALS",
"comparisonOp": {
"lhs": {
"type": "ENTITY",
"entityValue": {
"type": "PARAMETER",
"parameterIndex": 1
}
},
"rhs": {
"type": "STRING",
"stringValue": "VISA"
}
}
}
}
}
}
}