У меня есть иерархия классов, как показано ниже:Итерация над списком в Drools', когда состояние
class Order{
List<Item> items;
boolean eligibility;
//geters and setters
}
class Item{
boolean eligibility;
//getters and setters
}
Теперь, что я хочу сделать, это установить статус приемлемости порядка, основанного на статусе правомочности своих позиций. Если все элементы в заказе имеют право на участие в качестве ложных, то право на участие в ордере должно быть установлено на false. Основываясь на другой должности, я написал правило так:
rule "Check order eligibility based on item eligibility"
dialect "java"
when
$order : Order($items : items)
Boolean(booleanValue)
from accumulate(
init(int eligibleItems = 0;),
action(for(Object item:$items)
if(((Item)item).getEligibility()) eligibleItems++;
),
result(eligibleItems == 0)
)
then
$order.setEligibility(false);
end
Однако, когда я запускаю это я получаю mismatched input 'eligibleItems' in rule
. Как еще я могу перебирать список внутри условия when
? Я использую Drools 6.2.0.