Перейти к основному содержанию
Югорский государственный университет
  • В начало
  • Минимальные требования
  • Дополнительно
Вход
Югорский государственный университет
В начало Минимальные требования
  1. Тест Глобал
  2. Практика 1.3 Упражнения по jexl.

Практика 1.3 Упражнения по jexl.

Требуемые условия завершения
Дать ответ на задание

Ответ на задание необходимо предоставить в виде файлов 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

  • Примечание

  • Для чтения свойства скала класса в jexl необходимо к имени свойства добавить скобки.
  • m1.memid()

Сортировка через jexl

Напишите сортировку списка участников через jexl выражение member1.memid > member2.memid

Югорский государственный университет

Контакты

  • Администратор сайта:
                     ag_fomin@ugrasu.ru

Вы используете гостевой доступ (Вход)
Сводка хранения данных
©Тема Trema