Объект
Тип метаданных
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 | Строка | Маппинг значения в сущность или провайдер данных | |
required | true false | Обязательность поля | false |
enabled | Строка | Условие, при котором должен быть выполнен маппинг |
Пример
<fields> <field id="birthday" domain="date" mapping="['birthDate']"/></fields>
#
<reference>Составное поле.
Атрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
id | Строка | Идентификатор ссылки | |
object-id | Ссылка | Объект, в котором представлено описание поля | |
entity-class | Строка | Класс сущности, на который ссылается поле | Определяется по атрибуту entity-class у объекта ссылки |
mapping | Строка | Маппинг составного поля в параметр провайдера | |
required | true 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 | Параметризованный текст | Текст, в случае непредвиденной ошибки | Не удалось выполнить действие |
confirm | true 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 | Строка | Идентификатор валидации | |
severity | success, info, warning, danger | Уровень важности валидации | |
server-moment | before-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 | Ссылка на поле | Поле, под которым отобразится сообщение | |
enabled | true false | Включение валидации. Поддерживаются плейсхолдеры условия. | true |
side | client 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>Валидация обязательности заполнения поля.
Атрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
field-id | Ссылка | Поле, которое должно быть заполнено |
Тело
JavaScript выражение
tip
Вводить javaScript выражение не обязательно. Будут сделаны стандартные проверки на undefined, null, пустую строку, наличие id, пустой список
Пример
<validations> <mandatory id="requiredName" field-id="name" message="Наименование должно быть заполнено"/></validations>
#
<constraint>Валидация ограничений полей.
Атрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
result | SpEL выражение | Результат валидации |
Пример
<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-moment | before-operation, before-query, after-success-query, after-fail-query, after-success-operation, after-fail-operation | Момент срабатывания валидации на сервере | before-operation при severity равном danger или warning, иначе - after-success-operation |
title | Строка | Заголовок окна с диалогом. Может содержать параметры | |
message | Строка | Сообщение, в случае нарушения валидации. Может содержать параметры | |
result | SpEL выражение | Результат валидации | |
size | sm 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.
Тело
Список параметров