Drools返回规则列表

时间:2014-08-08 08:01:19

标签: java drools

我是drools的新手,我成功创建了一个使用创建规则的工作应用程序。我有一个简单的班级Message,其中包含两个变量typelanguage

public class Message {
  private String type;
  private String language;

  public String getType() {
      return type;
  }

  public void setType(String type) {
      this.type = type;
  }
  public String getLanguage() {
      return language;
  }

  public void setLanguage(String language) {
      this.language = language;
  }
}

我的规则实施为

rule "test_auto"
when
  message:Message (( type == 'string1' ) && ( language == 'string2' ) )
then
  ...
end

如果用户为类型或语言插入一些奇怪的值,我有一个返回错误的特定规则。但最重要的是,我想知道是否还可以返回规则中插入的所有可能变量的列表:例如string1string2

1 个答案:

答案 0 :(得分:1)

我猜你的意思是"字符串文字"而不是变量?

这是一个代表规则的类;用于模式和约束的类。但这些并不稳定",通常不建议将应用程序基于它们。

如果您有几个规则捕获Message.type和Message.language的一些错误组合,您可以考虑根据

插入事实
class BadMessage {
    String type;
    String language;
}

所有这些"坏"组合和规则

rule "catch bad messages"
when
    $m: Message'( $t: type, $l: language )
    BadMessage( type == $t, language == $l )
then
    // handle $m as a "bad" message

顺便说一句,请注意您可以简单地将模式编写为

message: Message( type == "string1", language == "string2" )