如何在Drools中存储When语句中的数据?

时间:2015-07-08 14:03:59

标签: java drools

我需要从规则的“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”语句中,我想返回导致规则被触发的苹果列表(在这种情况下是坏的)。

0 个答案:

没有答案