Объекты

Материал из DevelopmenOnTheEdge
Версия от 17:34, 9 октября 2014; Lan (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Для удобства в контексте выполнения Freemarker всегда содержатся некоторые объекты. Внутри конструкций Freemarker (${}, <#> и <@>) ими можно пользоваться как обычными Java-объектами.

Эти объекты определены везде (в Custom scripts и при задании кода представлений):

  • project: объект com.beanexplorer.enterprise.metadata.model.Project; содержит всю иерархию проекта; можно достать любые данные. Примеры:
    • ${project.getConnectionProfileName()} — профиль соединения к базе данных.
    • ${project.getEntity('myTable').getQueries().get('myQuery').getMenuName()} — название пункта меню для представления myQuery в таблице myTable.
  • dbPlatform: строка, определяющая платформу СУБД. Сокращённый вариант для project.getDatabaseSystem().getName(). Пример использования:
    • SELECT <#if dbPlatform == 'sqlserver'>TOP 1</#if>
  • currentDate: SQL-выражение для текущей даты в текущей версии СУБД
  • currentDateTime: SQL-выражение для текущего времени в текущей версии СУБД
  • fromFakeTable: SQL-выражение для выборки из псевдо-таблицы (например "FROM DUAL") в зависимости от текущей версии СУБД
  • null: специальное значение для работы с NULL в SQL. При использовании null?str вы получите строку NULL. Объект null можно передавать в макросы и функции, которые применят ?str к нему. Использование объекта null другими способами ведёт к неопределённому поведению.

Эти объекты могут быть определены при задании кода представлений или кастомизаций:

  • module: объект com.beanexplorer.enterprise.metadata.model.Module, представляющий текущий модуль
  • entity: объект com.beanexplorer.enterprise.metadata.model.Entity, представляющий текущую entity. Пример:
    • SELECT * FROM ${entity.getName()} — выбрать все элементы из текущего entity (можно, к примеру, определить такой макрос и использовать его в разных entity).
  • query: объект com.beanexplorer.enterprise.metadata.model.Query, представляющий текущее представление.
  • operation: объект com.beanexplorer.enterprise.metadata.model.Operation, представляющий текущую операцию.
  • customization: объект com.beanexplorer.enterprise.metadata.model.PageCustomization, представляющий текущую кастомизацию.