我是drools的新手,我成功创建了一个使用创建规则的工作应用程序。我有一个简单的班级Message
,其中包含两个变量type
和language
。
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
如果用户为类型或语言插入一些奇怪的值,我有一个返回错误的特定规则。但最重要的是,我想知道是否还可以返回规则中插入的所有可能变量的列表:例如string1
和string2
。
答案 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" )