Ограничения

Ограничение - позволяет ограничить множество возможных значений свойства объекта.

Ограничения бывают двух типов:

  • простое ограничение у которого перед установкой значения свойства вызывается метод check и если значение не соответствует ограничению возбуждается исключительная ситуация.
  • списочное ограничение которое в дополнение к предыдущему ограничению еще и возвращает список значений в которые может устанавливаться значения ограниченного свойства. Это так же помогает редакторам (визуальным компонентам) выбирать значение для свойства, например, из раскрывающегося списка.

В WEDA Framework уже имеется несколько заригистрированных ограничений:

  • notNull - значение свойства не может быть null
  • boolean - значение свойства может принимать либо true либо false. Данное ограничение является списочным и соответственно значение (локализованное) свойства при редактировании можно будет выбрать из списка.
а так же позволяет создавать новые ограничения

Применение ограничения к свойству объекта

Для того что бы применить ограничение к свойству неободимо применить аннтоцию Constraints к getter'у или setter'у свойства. Далее в аннотацию Constraints занести список аннотаций ConstraintId в значении которого нужно указать идентификатор ограничения.

Пример:

            
    @Constraints({
        @ConstraintId("notNull")
    })
    public Date getOperationDate() {
        return operationDate;
    }
            
        

Описание точки конфигурации org.weda.property.Constraints

Задача конфигураци - регистрация ограничений

Структура:

            
            <constraint .../>
            <values-set ...>
                <element .../>
            </values-set>
            <aliased-values-set ...>
                <element .../>
            </aliased-values-set>
            <object-source-values-set .../>
            
        

Элементы конфигурации:

Название элементаОписание
constraint Создает ограничение

Атрибуты элемента

Атрибут Описание Может быть пустым?
idУникальный идентификатор ограниченияНет
classкласс реализующий ограничениеНет



Название элементаОписание
values-set добавляет списочное ограничение

Атрибуты элемента

Атрибут Описание Может быть пустым?
idУникальный идентификатор ограниченияНет
valueTypeТип значений хранящихся в спискеНет
conversionPatternШаблон который будет использован для преобразования значения списка к строке и наоборотНет



Название элементаОписание
element (для values-set) добавляет значение к списку

Атрибуты элемента

Атрибут Описание Может быть пустым?
valueЗначениеНет



Название элементаОписание
aliased-values-set добавляет списочное ограничение значения которого имеют псевдонимы

Атрибуты элемента

Атрибут Описание Может быть пустым?
idУникальный идентификатор ограниченияНет
valueTypeТип значений хранящихся в спискеНет
conversionPatternШаблон который будет использован для преобразования значения списка к строке и наоборотНет



Название элементаОписание
element (для aliased-values-set) добавляет значение к списку

Атрибуты элемента

Атрибут Описание Может быть пустым?
valueЗначениеНет
aliasПсевдоним значение (имено он будет появляться в выпадающем списке редактора)Нет



Название элементаОписание
object-source-values-set Создает списочное ограничение. Значения для списка будут браться из источника объектов

Атрибуты элемента

Атрибут Описание Может быть пустым?
idУникальный идентификатор ограниченияНет
objectSourceNameИмя источника объектовНет

Пример конфигурации:

            
    <contribution configuration-id="org.weda.property.Constraints">
        <object-source-values-set id="денежная-статья" objectSourceName="operationItem"/> 
    </contribution>
            
        

Доступ к сервису

Имя сервиса в среде HiveMind - org.weda.property.ConstraintsRegistry