我必须记录负责在Drools中触发规则的所有内容,如对象,条件等。
我能够通过使用 AgendaEventListener 获取对象,并在其中使用beforeActivationFired方法编写下面的代码。
@Override
public void beforeActivationFired(BeforeActivationFiredEvent event){
event.getActivation().getObjects();
}
但是如何获取条件以及在哪个对象上调用哪些方法? 就像我有一个用作全局变量的对象,用于根据缓存中的值验证值,即当规则的一部分时,这个全局对象上有不同的方法(其中包含数百个方法)被称为。
现在我想获得有关调用哪些方法的信息,以便我可以事先记录信息,因为在执行之后,缓存中的值可能会发生变化。
例如 -
如果在条件低于条件的情况下,那么我希望知道条件中的条件以及两侧的值,即$ val的值以及$ cache.getCurrentTimestamp()(请注意,调用缓存的方法事先是未知的。
$val : timestamp,
$val == $cache.getCurrentTimestamp()
我该如何完成这项任务?