Перейти к основному содержанию
Югорский государственный университет
  • В начало
  • Минимальные требования
  • Сбор персональных данных
  • Дополнительно
Вход
Югорский государственный университет
В начало Минимальные требования Сбор персональных данных
  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