私はDrools 6.3.0 Finalを使用しています。私はこのDrools:LHSパターンから識別子を取得
rule "Child of Person over 18"
when
$person : Person(age > 18)
$child : from $person.children
then
end
のようなルールは、私たちはさらに、私はこのルールに私のKieSessionを構築すると仮定し、いくつかの事実を追加してみましょう、今、私は私の事実にマッチしたすべてのルールに/すべてのルールで使用される識別子を知ってほしいしていると仮定します。
ここで私が手に入れたいのは、$ personと$ childです。
私はAgendaEventListenerを使ってイベントを発生させ、ルールの名前と$ personと$ childのオブジェクトを取得できます。しかし、私は一致する人から$ personと$ childという識別子を取得する方法を見つけることができません。デバッガを使用すると、情報がそこにあるのがわかります...実際にイベントから得られるルールはRuleImplです。これはlhsRootを持っていますが、その情報を見つけることができます...しかし、これはもっと複雑です意図された方法ではありません。
だから私はそこにもっと良い方法がないのだろうかと思っていました。
純粋にルールのローカルな情報でどうしたいですか? – laune
RuleImplおよびGroupElementは非公開APIのクラスであり、予告なしに変更されることがあります。標準的なアドバイスは、これらのクラスで深刻なアプリケーションプログラミングをベースにしないようにすることです。 – laune
私は自分のシステムを結果として提供する必要があります。そのため、ルールに使用されている値と一致する名前が必要です。私はこのための公開APIがあることを望んでいましたが、そうでなければ、それは内部でなければなりません – blackdrag