当规则空间中的事实(fact)有多个时,规则会匹配多个组合.
测试结果
Rule rule = new Rule();
rule.setRuleName("test");
rule.setSalience(100);
ksession.insert(rule);
ksession.fireAllRules();
import test.Rule;
rule "test second"
salience 20
activation-group "test"
no-loop true
when
$test: Rule(ruleName matches "test", salience >= 110)
then
System.out.println($test + " the 1st");
end
rule "test first"
salience 10
no-loop true
when
$test: Rule( )
$show : String( )
then
System.out.println($test + " the 2nd");
System.out.println($show + " the 2nd");
end
rule "test three"
salience -10
activation-group "test"
no-loop true
when
$test: Rule( )
then
System.out.println($test + " the 3rd");
$test.setNo_loop(true);
Rule temp = new Rule();
temp.setRuleName("test");
temp.setSalience(110);
insert("show");
insert("test");
insert(temp);
end
测试结果
test.Rule@90d8ea the 3rd
test.Rule@17cec96 the 1st
test.Rule@17cec96 the 2nd
test the 2nd
test.Rule@17cec96 the 2nd
show the 2nd
test.Rule@90d8ea the 2nd
test the 2nd
test.Rule@90d8ea the 2nd
show the 2nd