Я столкнулся с проблемами в понимании правил Drools, которые реализованы в одном из демонстрационных примеров OptaPlanner (приложение NurseRostering). Может ли кто-нибудь объяснить, как работает приведенное ниже правило:
// a nurse can only work one shift per day, i.e. no two shift can be assigned to the same nurse on a day.
rule "oneShiftPerDay"
when
$leftAssignment : ShiftAssignment($leftId : id, $employee : employee, $shiftDate : shiftDate)
$rightAssignment : ShiftAssignment(employee == $employee, shiftDate == $shiftDate, id > $leftId)
then
insertLogical(new IntConstraintOccurrence("oneShiftPerDay", ConstraintType.NEGATIVE_HARD,
1,
$leftAssignment, $rightAssignment));
end
Есть ли какие-либо ресурсы, в которых подробно рассказывается об объяснении правил и того, как они реализуются? Когда я проверяю некоторые примеры в Интернете и в некоторых книгах, мне довольно легко понять, однако, когда я проверяю образцы, представленные в Drools, я не могу понять.