我正在使用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