在 drools then 子句中更新列表
Updating a list in drools then clause
我有一个规则,我需要对列表的每个成员调用 update/modify。像
when
$students : ArrayList() from collect (Student (age > 20))
then
# update all the students in $students list with category as Senior
# call modify/update for every element of $students list
我可以调用一个函数并将其传递给 $students 列表,这将为列表的每个成员设置类别。
谁能指导我如何对列表中的每个成员调用 update/modify
第一条规则有效,但首选第二条规则:
rule setcat-1
when
$students : List()
from collect (Student (age > 20, cat != "senior"))
then
for( int i = 0; i < $students.size(); ++i ){
Student s = (Student)$students.get( i );
modify( s ){ setCat( "senior" ) }
}
end
rule setcat-2
when
$student : Student (age > 20, cat != "senior")
then
modify( $student ){ setCat( "senior" ) }
end
没有理由将所有事实收集到一个列表中以便您可以对其进行迭代。 Drools 在引擎中也能做到这一点。
我有一个规则,我需要对列表的每个成员调用 update/modify。像
when
$students : ArrayList() from collect (Student (age > 20))
then
# update all the students in $students list with category as Senior
# call modify/update for every element of $students list
我可以调用一个函数并将其传递给 $students 列表,这将为列表的每个成员设置类别。
谁能指导我如何对列表中的每个成员调用 update/modify
第一条规则有效,但首选第二条规则:
rule setcat-1
when
$students : List()
from collect (Student (age > 20, cat != "senior"))
then
for( int i = 0; i < $students.size(); ++i ){
Student s = (Student)$students.get( i );
modify( s ){ setCat( "senior" ) }
}
end
rule setcat-2
when
$student : Student (age > 20, cat != "senior")
then
modify( $student ){ setCat( "senior" ) }
end
没有理由将所有事实收集到一个列表中以便您可以对其进行迭代。 Drools 在引擎中也能做到这一点。