⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_joinnodemodifyobject.drl

📁 jboss规则引擎
💻 DRL
字号:
#created on: 12 juin 2006
package Number

import org.drools.IndexedNumber;
import java.util.List;

global java.util.List orderedNumbers;
global java.util.List errors;
 
rule "Order1"
salience 210
	when
	    # testing join node + eval
		n1 : IndexedNumber($nb1 : number);
		n2 : IndexedNumber(number < $nb1);
		eval(n1.getIndex() < n2.getIndex());
	then
		if ( ! (n1.getIndex() < n2.getIndex())) {
		    errors.add("{1} Shouldn't fire for: " + n1 + " " + n2);
        }
end		

rule "Order2"
salience 200
	when
	    #testing pure join nodes
		n1 : IndexedNumber($nb1 : number, $index : index);
		n2 : IndexedNumber(number < $nb1, index > $index );
	then
		if ( ! (n1.getIndex() < n2.getIndex())) {
		    errors.add("{2} Shouldn't fire for: " + n1 + " " + n2);
        }
		swap(n1, n2);
		modify(n1);
		modify(n2);
end		

rule "Debug"
salience 10
	when
		n : IndexedNumber($idx : index);
		not IndexedNumber(index < $idx);
	then
		orderedNumbers.add(n);
		retract(n);
end

function void swap(IndexedNumber n1, IndexedNumber n2) {
	int tmp = n1.getIndex();
	n1.setIndex(n2.getIndex());
	n2.setIndex(tmp);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -