У меня есть вариант использования, чтобы частично выполнить выражение MVEL и вернуть остальные неизвестные части. Например, у меня есть следующее выражение
if(person.firstName == 'John' && person.buyingPreference == 'Cash') {result = new Result(..)}
Имя первого лица известно, но параметр BuyPreference неизвестен. Предполагая, что есть имя человека по имени Джон, которое известно, я хочу, чтобы MVEL сообщил мне, что результат будет возвращен, когда buyPreference == 'Cash'. Не обязательно, чтобы MVEL возвращал мне результат вместе с неизвестным выражением. Но мне нужен способ узнать, какое условие сделает все выражение истинным и вернуть результат.
Я также думаю о другом направлении, которое разделяет выражение с известной и неизвестной частью, тогда мне нужно только выполнитьизвестная часть внутри MVEL. Но так как выражение написано в String, я не вижу хорошего способа разбить правило без UI или разбора String.