Как создать контекст оценки MVEL?

Я хочу последовательно разобрать MVEL следующим образом:

HashMap myData = new HashMap(){{ put("x", 1); }}

eval("y = 2", ...) // assign value to y
...
eval("x + y", myData, ...) // expect 3

Это возможно? Если да, то как?


person kevin cline    schedule 06.08.2012    source источник


Ответы (1)


Просто поделитесь распознавателем переменных между оценками выражений:

VariableResolverFactory vars = new MapVariableResolverFactory(new HashMap(){{ put("x", 1); }});

MVEL.eval("y = 2", vars): MVEL.eval("x + y", vars);

person Mike Brock    schedule 01.09.2012
comment
Спасибо. MVEL очень удобен, но, как и многие другие компоненты с открытым исходным кодом, документация может быть улучшена. - person kevin cline; 01.09.2012