У меня есть поток из таблицы БД, содержащий правила (формулы), которые я хотел бы сопоставить с потоком с данными в соответствии со значением столбца Имя. Скажем так (правила - это просто фиктивные примеры, а не часть вопроса):
Data:
---------------
Name | Sales
---------------
Food | 1000
Alkohol | 1000
Gas | 1000
Rules:
---------------
Name | Rule
---------------
Food | [if Sales > 100 then 0.5 else 0.7]
Alkohol | [if Sales > 25 then 1 else 2]
Gas | [if Sales > 500 then 0.7 else 0.5]
Возможен ли поток, который позволяет искать правило с помощью столбца Name, а затем применять правило сопоставления в строку?
В настоящее время у меня есть определенный пользователем класс java, который выполняет итерацию по массиву правил для каждой строки данных, применяя правило сопоставления в виде формулы:
Formula formula = new Formula(rules[i]);
context.setRowData(row);
formula.initialize(context);
. .. но это не очень эффективно. Есть ли лучший способ сделать это?