rule "Your First Rule"
no-loop
salience 10
when
$c : Company()
// $e : String()
$e : StaffException()
$r : StaffExcCode($r.getCode() == "1") from $e.getStaffException()
$y : ArrayList()
from collect (String() from $r.getStaffExc())
$ee : Staff(StaffCode not memberOf($y)) from $c.getStaffInfo()
then
//actions
System.out.println("Satisfied." + $y);
//System.out.println("Satisfied." + $ee);
КОНЦАDrools - Как получить String [] из ArrayList собирать
Я получил Список_массивы $ у и в надежде генерировать String [] массив для использования в качестве условия в memberOf. Как это можно сделать для реализации этой трансформации?
Это класс используется в демо: Класс StaffExcCode:
public class StaffExcCode {
private String StaffExc;
private String code;
public StaffExcCode(String StaffExc, String code) {
this.StaffExc = StaffExc;
this.code = code;
}
/* ignore the get and set */
}
Класс StaffException:
public class StaffException {
private List<StaffExcCode> exc;
/* ignore the get and set */
}
класса Персонал:
public class Staff {
private String StaffCode;
private String StaffName;
private int StaffAge;
/* ignore the get and set */
}
Класс Компания:
public class Company {
private int CompanyCode;
private String CompanyName;
private int StaffNumber;
private List<Staff> StaffInfo;
/* ignore the get and set */
}
Я бы попытался переписать правило так, чтобы оно работало, но это невозможно, учитывая неполный и непоследовательный фрагмент правила, которое вы опубликовали. Редактировать, предоставляя точную информацию о типе соответствующих классов и соответствующих полей. – laune
Обновлено .. Спасибо за помощь. – Calvin