我需要从规则的“Then”部分的“When”部分触发规则的数据。例如,如果我想在商店中记下所有坏苹果,如果有超过50个,那么我就是这样做的。
Rule "Detect Bad Apples"
When
s : Store( numberOfBadApples() > 50 )
Then
// Print out a list of the bad apples
为了使它更复杂,我有多个将覆盖的规则。否则,我会将数据存储到Store类中的变量中。
有更好的方法吗?我一直在阅读Drools 6.2 Documentation,但我仍然感到困惑。
--- ---- EDIT
Java中的Store类看起来像:
public class Store {
private ArrayList<Apple> appleList;
// The appleList would be filled in another method
public int numberOfBadApples() {
int badAppleCount = 0;
for (Apple apple : appleList) {
if (apple.isBad()) {
badAppleCount++;
}
}
return badAppleCount;
}
}
所以在Drools的“Then”语句中,我想返回导致规则被触发的苹果列表(在这种情况下是坏的)。