Источник объектов - позволяет работать с набором объектов. А именно:
Задача конфигураци - регистрация источников объектов
Структура:
<objectSource ...> <query ...> строка_запроса </query> <filter ...> <alias .../> <element .../> <static-element .../> </filter> <detailObjectSource .../> <summary> <element .../> </summary> <listeners> <listener .../> </listeners> </objectSource>
Элементы конфигурации:
Название элемента | Описание |
---|---|
objectSource | Создает источник объектов |
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
name | Уникальное имя источника объектов | Нет |
baseClass | Класс являющийся базовым для источника данных | Нет |
baseClassPosition |
Позиция базового класса в строке (можно сказать позиция объекта
в операторе select запроса). Нумерация начинается
с нуля.
| Нет |
baseClassAlias |
Псевдоним данного объекта в строке запроса. Например
в запросе from budget.domain.MoneyOperation moneyOperation псевдонимом будет moneyOperation
| Нет |
readOnly |
Если установить в true тогда источник не разрешит изменять данные в нем.
(по умолчанию false )
|
Да |
Название элемента | Описание |
---|---|
query | Создает запрос, используя который источник объектов получает список объектов. Строка запроса задается в теле элемента. |
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
maxRows | Максимальное количество строк которое можно получить выполняя запрос. По умолчанию 500 | Да |
fetchSize | Порциями по столько будут доставаться строки из БД. По умолчанию 40 | Да |
timeout | Максимальное время выполнения запроса (сек.). По умолчанию 60 | Нет |
Название элемента | Описание |
---|---|
filter | Конфигурирует фильтр источника объектов. Подробнее о фильтрах можно узнать в разделе Фильтры |
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
namesList | Название списка имен который будет использован для формирования элементов фильтра | Да |
Название элемента | Описание |
---|---|
alias | Описывает псевдоним для объекта, используемый в запросе |
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
alias | Псевдоним объекта | Нет |
objectClass | Тип объекта для которого описывается псевдоним | Нет |
Название элемента | Описание |
---|---|
static-element |
Описывает элемент фильтра значение которого можно задать
прямо в конфигурации (атрибут expression ).
Значение фильтра можно изменять программно, но нельзя
изменять из пользовательского интерфейса.
|
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
property | Название свойства объекта | Нет |
objectAlias | Название псевдонима. Если значение атрибута не установлено, тогда baseClassAlias | Да |
staticExpression | Значение фильтра | Нет |
parameter |
Название параметра в запросе в который будет установлено
выражение фильтра. Параметр задается в запросе в виде
:название_параметра
Например: where company.employeCount > :param
|
Да |
Название элемента | Описание |
---|---|
element | Описывает элемент фильтра значение которого может изменяться из пользовательского интерфейса |
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
property | Название свойства объекта | Нет |
objectAlias | Название псевдонима. Если значение атрибута не установлено, тогда baseClassAlias | Да |
parameter |
Название параметра в запросе в который будет установлено
выражение фильтра. Параметр задается в запросе в виде
:название_параметра
Например: where company.employeCount > :param
|
Да |
Название элемента | Описание |
---|---|
detailObjectSource |
Задает связь типа master-detail
между источниками объектов. Взаимосвязь активируется
автоматически при редактировании объекта (но только одного)
выделенного в источнике и деактивируется после завершения
редактирования.
|
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
name | Имя подчиненного источника объектов | Нет |
property |
Свойство основного класса в подчиненном источнике объектов
по которому будет создан элемент фильтра. В качестве
значения будет выступать либо объект основного класса выделенной строки
в главном источнике или значение его свойства, если задано
значение атрибута masterProperty
| Нет |
masterProperty | Имя свойства основного класса (baseClass) значение которого будет использовано для фильтрации данных в подчиненном источнике объектов. | Да |
refreshOnActivate |
Если установить в true тогда после активации
взаимосвязи данные подчиненный источник данных будет открыт.
|
Нет |
Название элемента | Описание |
---|---|
summary | Позволяет применить агрегатные функции к источнику объектов. Например можно подсчитать сумму для заданного свойства определенного объекта. |
Название элемента | Описание |
---|---|
element (для summary) | Позволяет применить агрегатную функцию к свойству объекта. |
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
property | Имя свойства объекта | Нет |
objectPosition | Позиция объекта в строке данных источника. По умолчанию baseClassPosition |
Да |
function | Название агрегатной функции | Нет |
Название элемента | Описание |
---|---|
listener |
Регистрирует слушателя событий происходящих в источнике
объектов. Функциональность summary
реализована с помощью этого механизма.
|
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
object | Ссылка на объект слушателя. Каждый слушатель должен релизовывать интерфейс org.weda.store.ObjectSourceListener | Нет |
Пример конфигурации:
<contribution configuration-id="org.weda.store.ObjectSources"> <objectSource name="moneyOperation" baseClass="domain.MoneyOperation" baseClassPosition="0" baseClassAlias="money" > <query maxRows="100" fetchSize="50" timeout="60"> from budget.domain.MoneyOperation as money where 1=1 {#} order by money.operationDate desc </query> <filter namesList="moneyOperation-filter"/> <summary> <element property="amount" function="sum"/> </summary> <listeners> <listener object="instance:listeners.MoneyOperationObjectSourceListener"/> </listeners> </objectSource> </contribution>