我试图找到一个优雅的OOPath表达式来匹配一个Object。我当前的域/规则模型有
现在我正在尝试编写一个规则,该规则应该触发并创建一个新的JobEvent警报,如果不存在同一个Job的先前警报。我试过了
rule "Create Alert for Failed Job"
when
e : JobEvent(status == "FAILURE") from entry-point "JobPoller"
not ( Alert( /causes{jobName == e.jobName} ) )
但非常谨慎,这导致了
[Error: unable to resolve method using strict-mode: ....Event.jobName()
因为列表的类型(来自cause属性)是Event,只有子类型JobEvent具有属性jobName。
尝试过像
这样的事情not ( Alert( /causes#JobEvent{jobName == e.jobName} ) )
或instanceof的变体,但无法找到表达我的OOPath查询的方法。
有选择吗?