Практика 1.3 Упражнения по jexl.
Требуемые условия завершения
Ответ на задание необходимо предоставить в виде файлов Scala и XML, которые были изменены в текущем уроке (для написанного программного кода). Скриншоты интерфейса приложения для заданий выполняемых в интерфейсе и для демонстрации работы кода в системе Global ERP следует отправить в формате PDF, PNG или JPG. Для удобства рекомендуется прислать все файлы в одном архиве.
Дать ответ на задание
Ответ на задание необходимо предоставить в виде файлов Scala и XML, которые были изменены в текущем уроке (для написанного программного кода). Скриншоты интерфейса приложения для заданий выполняемых в интерфейсе и для демонстрации работы кода в системе Global ERP следует отправить в формате PDF, PNG или JPG. Для удобства рекомендуется прислать все файлы в одном архиве.
В ответе на задание должны содержаться элементы, обеспечивающие работоспособность описанного в задании функционала.
Выполнение произвольного jexl.
val jexl = new JexlBuilder().permissions(JexlPermissions.UNRESTRICTED).create() /** * Выполнение jexl выражения * @param jexlString строка с jexl выражением * @param jexlContext контекст jexl, где контекст это набор переменных и функций, доступных в выражении. * @return результат выполнения jexl */ def evaluateJexl(jexlString: String, jexlContext: MapContext): AnyRef = { val e = jexl.createExpression(jexlString) val o = e.evaluate(jexlContext) o } test("eval_jexl") { //Контекст выполнения содержит переменные доступные jexl выражению //в момент выполнения val jc = new MapContext() //Задает переменную a в контексте выполнения jc.set("a",1) //Задает переменную b в контексте выполнения jc.set("b",2) assert(evaluateJexl("a + b", jc) == 3) }
- Совет
-
-
Для дополнительной информации по синтаксису jexl смотрите справку по синтаксису jexl.
Для понимания типов используемых в выражении смотрите Арифметику jexl
Метод
assert
не выводит в консоль оповещение в случае успешного выполнения тестового кода! Если есть необходимость увидеть все результаты тестов, корректные и некорректные, результат методаassert
можно вывести в консоль при помощиprintln
.
Функция сравнения на jexl
Напишите scala функцию которая используя выражения jexl сравнит двух участников по выражению member1.memid < member2.memid