Вы говорите об XML и метаданных.Вы можете различить все сущности?Например, если речь идет о заказах, можете ли вы извлечь каждый заказ и атрибуты каждого заказа?
Я решил аналогичную проблему с помощью maps для хранения каждого атрибута.
public class Order{
private int id;
private Map<String, Integer> num_attribute_map = new HashMap<String, Integer>();
public Map getNumAttributeMap(){
return this.num_attribute_map;
}
Если заказ имеет customer_satisfaction
= 5,
order_obj.getNumAttributeMap().put("customer_satisfaction" , 5);
И, таким образом, вы создали Order
с их атрибутами, хранящимися в numAttributeMap
.
Для реализации правила для Order
$ord : Order(
getNumAttributeMap[$attribute] >= $value
)
, где $attribute
будет, конечно, "customer_satisfaction"
.Обозначение []
используется для доступа к элементам списка, заданному индексу или значениям карты, заданному ключу.
Надеюсь, вы «поймете» понятия карт.Кроме того, поищите поддержку языка Drools для доступа к спискам и картам.
Я также реализовал карты списков строк для выполнения операции «включено», в дополнение к картам целых чисел, которые выполняют операции сравнения.Пожалуйста, обратитесь https://stackoverflow.com/a/9241089/604511 тоже