Skip to main content

Объект

Тип метаданных

object

Библиотека компонентов

http://n2oapp.net/framework/config/schema/object-4.0

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
nameСтрокаНаименование объекта
table-nameСтрокаНаименование таблицы БД, ассоциированной с объектом
service-classСтрокаКласс сервиса, выполняющего действия над объектом
service-nameСтрокаИмя сервиса, выполняющего действия над объектом
app-nameСтрокаИмя приложения, содержащего объект
module-nameСтрокаИмя модуля, содержащего объект

Пример

<object xmlns="http://n2oapp.net/framework/config/schema/object-4.0"  name="Мой объект"  table-name="mytable"  entity-class="com.example.MyEntity">  ...</object>

<fields>#

Поля объекта.

<field>#

Простое поле объекта.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
idСтрокаИдентификатор поля
default-valueСтрокаЗначение по умолчанию
domainТип данныхТип данных поля
normalizeСтрокаSpEL выражение, применяемое к значению перед маппингом
mappingСтрокаМаппинг значения в сущность или провайдер данных
requiredtrue falseОбязательность поляfalse
enabledСтрокаУсловие, при котором должен быть выполнен маппинг

Пример

<fields>  <field id="birthday" domain="date" mapping="['birthDate']"/></fields>

<reference>#

Составное поле.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
idСтрокаИдентификатор ссылки
object-idСсылкаОбъект, в котором представлено описание поля
entity-classСтрокаКласс сущности, на который ссылается полеОпределяется по атрибуту entity-class у объекта ссылки
mappingСтрокаМаппинг составного поля в параметр провайдера
requiredtrue falseОбязательность поляfalse
enabledСтрокаУсловие, при котором должен быть выполнен маппинг

Тело

Список <field>, <reference>, <list>, <set> полей

note

Если тело пустое, то маппинг и преобразование дочерних полей не будет производиться. Если не пустое, то только для тех, что перечислены.

Пример

<fields>  <reference id="person" mapping="['person']">    <field id="id" mapping="['id']"/>    <field id="name" mapping="['name']"/>    <set id="phones" mapping="['phones']" object-id="phone"/>    <list id="addresses" mapping="['addresses']" object-id="address"/>  </reference></fields>

<list>#

Поле - список объектов.

Атрибуты

Аналогичны <reference>.

Пример

<fields>  <list id="statuses" mapping="['statusList']">    <field id="id" mapping="['id]'"/>    <field id="name" mapping="['name']"/>    <list id="codes" mapping="['codes']" object-id="code"/>  </list></fields>

<set>#

Поле - множество объектов.

Атрибуты

Аналогичны <reference>.

Пример

<fields>  <set id="statuses" mapping="['statusSet']">    <field id="id" mapping="['id]'"/>    <field id="name" mapping="['name']"/>    <list id="codes" mapping="['codes']" object-id="code"/>  </set></fields>

<operations>#

Список операций над объектом.

<operation>#

Операция над объектом.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
idСтрокаИдентификатор операции
nameСтрокаНаименование операции
submit-labelСтрокаНаименование кнопки отправки операцииЕсли id равен create, update, save, persist, то - "Сохранить". В иных случаях - "Подтвердить".
descriptionТекстОписание операции
success-textПараметризованный текстТекст, в случае успехаДанные сохранены
fail-textПараметризованный текстТекст, в случае непредвиденной ошибкиНе удалось выполнить действие
confirmtrue falseТребуется ли подтверждение действия?
confirm-textПараметризованный текстТекст подтверждения действияВы уверены, что хотите выполнить действие?

Пример

<operations>  <operation    id="update"    name="Изменение"    success-text="Запись успешно изменена"    fail-text="Не удалось изменить запись">    <invocation>      <sql>UPDATE mytable SET name = :name WHERE id = :id</sql>    </invocation>    <in>      <field id="id" mapping="id" required="true"/>      <field id="name" mapping="name"/>    </in>    <fail-out>      <field id="message" mapping="#this.getMessage()"/>    </fail-out>    <validations white-list="checkUniqueName"/>  </operation></operations>
<invocation>#

Вызов операции.

Тело

Провайдер данных

<in>#

Входящие параметры операции.

Тело

Список параметров

<out>#

Исходящие параметры операции.

Тело

Список параметров

<fail-out>#

Исходящие параметры в случае ошибки операции.

Тело

Список параметров

<validations>#

Список валидаций операции.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
white-listСписок идентификаторов через запятуюСписок валидаций, которые будут вызваны перед или после выполнения операцииВсе валидации объекта
black-listСписок идентификаторов через запятуюСписок валидаций, которые не будут вызваны перед или после выполнения операции

Тело

Список валидаций

<validations>#

Валидации объекта.

Базовые свойства#

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
idСтрокаИдентификатор валидации
severitysuccess, info, warning, dangerУровень важности валидации
server-momentbefore-operation, before-query, after-success-query, after-fail-query, after-success-operation, after-fail-operationМомент срабатывания валидации на сервереbefore-operation при severity равном danger или warning, иначе - after-success-operation
messageСтрокаСообщение, в случае нарушения валидации. Может содержать параметры
field-idСсылка на полеПоле, под которым отобразится сообщение
enabledtrue falseВключение валидации. Поддерживаются плейсхолдеры условия.true
sideclient server client,serverВыполнение на клиенте и/или сервере

<condition>#

Валидация условия значений полей.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
onСписок полейПоля, от которых зависит условие валидацииВычисляется по условию
srcСтрокаПуть к js файлу, который содержит условие валидации. Если не задан, необходимо задать условие в теле

Тело

java Script выражение

Пример

<validations>  <condition    id="checkAdult"    field-id="birthday"    message="Запрещено для детей. Ваш возраст {age} меньше 18."    on="age">    age >= 18  </condition></validations>

<mandatory>#

Валидация обязательности заполнения поля.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
onСписок полейПоля, от которых зависит условие валидацииВычисляется по условию
srcСтрокаПуть к js файлу, который содержит условие валидации. Если не задан, необходимо задать условие в теле

Тело

JavaScript выражение

tip

Вводить javaScript выражение не обязательно. Будут сделаны стандартные проверки на undefined, null, пустую строку, наличие id, пустой список

Пример

<validations>  <mandatory    id="requiredName"    field-id="name"    message="Наименование должно быть заполнено"/></validations>

<constraint>#

Валидация ограничений полей.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
resultSpEL выражениеРезультат валидации

Пример

<validations>  <constraint    id="checkUniqueName"    field-id="name"    message="Имя {name} уже существует"    result="[0].cnt == 0">    <invocation>      <sql>          SELECT count(1) as cnt          FROM mytable          WHERE name = :name            AND (:id is null OR id != :id)      </sql>    </invocation>    <in>      <field id="name" mapping="name"/>      <field id="id" mapping="id"/>    </in>  </constraint></validations>

<dialog>#

Валидация с диалогом выбора.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
idСтрокаИдентификатор валидации
server-momentbefore-operation, before-query, after-success-query, after-fail-query, after-success-operation, after-fail-operationМомент срабатывания валидации на сервереbefore-operation при severity равном danger или warning, иначе - after-success-operation
messageСтрокаСообщение, в случае нарушения валидации. Может содержать параметры
resultSpEL выражениеРезультат валидации
sizesm lgРазмер окна диалогаlg

Пример

<validations>  <dialog    id="checkName" size="sm"    message="Имя не Иван. Вы уверены, что хотите продолжить?"    result="name == 'Ivan'">    <invocation>...</invocation>    <in>      <field id="name"/>      <field id="validated"/>      <list id="statuses"/>    </in>    <out>      <field id="name"/>    </out>    <toolbar>      ...    </toolbar>  </dialog></validations>
<invocation>#

Вызов валидации.

Тело

Провайдер данных

<in>#

Входящие параметры валидации.

Тело

Список параметров

<out>#

Исходящие параметры валидации.

tip

Нужны для параметризации сообщения валидации message.

Тело

Список параметров

<toolbar>#

Меню управляющих кнопок.