PHP Inside

 
   
 

Главная


Начало
страница1
страница2
страница3
страница4
страница5
страница6
страница7
страница8
страница9
страница10
страница11
страница12
страница13
страница14
страница15
страница16
страница17
страница18
страница19
страница20
страница21
страница22
страница23
страница24
страница25
страница26
страница27
страница28
страница29
страница30
страница31
страница32
страница33
страница34
страница35
страница36
страница37
страница38
страница39
страница40
страница41
страница42
страница43
страница44
страница45
страница46
страница47
страница48
страница49
страница50
страница51
страница52
страница53
страница54
страница55
страница56
страница57
страница58
страница59
страница60
страница61
страница62
страница63
страница64
страница65
страница66
страница67
страница68
страница69
страница70
страница71
страница72
страница73
страница74
страница75
страница76
страница77
страница78
страница79
страница80
страница81
страница82
страница83
страница84
страница85
страница86
страница87
страница88
страница89

 
 
 

 

 

В нашем случае на роль дополнитель­ ных классов подходят UserMoveData и UserMoveContainer. Таким образом , класс UserMOveStartMoveCommand наследует только класс Command, так как в дальнейшем все команды бу­ дут обрабатываться единообразно .

Рассмотрим несколько примеров создания классов . Сначала создадим вспомогательный класс UserMoveData. На первом этапе нужно ввести назва­ ние класса и его уникальный иденти­ фикатор ( см . рис . 3).

Также указывается тип класса - «дополнительный» . То есть уже на этапе создания мы указываем , что этот класс является только средством группировки атрибутов и не несет ин­ формации о типе . Далее нужно задать предварительно созданные атрибуты ( см . рис . 4)

Обратите внимание , что все ат­ рибуты сделаны необязательными (optional). Это не вполне отвечает логи­ ке работы надстройки , однако исполь­ зовать дополнительный класс с обя­зательными (mandatory) атрибутами у меня не получилось . В документации я объяснения так и не нашел . При по­ пытке добавления класса с обязатель­ ными атрибутами в существующий возникает ошибка ( см . рис . 5).

Теоретически такая ошибка долж­ на возникать при добавлении допол­ нительного класса к такому , у которо-


го существуют экземпляры . Это впол­ не понятно . Но в моем случае она воз­ никала даже для только что создан­ ных классов . Поэтому я решил проб­ лему , просто сделав все атрибуты не­ обязательными . Это не слишком опас­ но , поскольку конечные пользовате­ли надстройки не имеют возможнос­ ти работы с объектами этих классов . Просто надо быть осторожнее при на­ писании сценариев обработки их эк­ земпляров .

Остальные классы создаются ана­ логично в соответствии со схемой ( рис . 1). Настройки , связанные с пра­ вилами вложенности , и добавление дополнительных классов выполняют­ ся уже для созданных классов . Рас­ смотрим пример ( см . рис . 6).

Итак , родительский класс был за­ дан при создании , UserMoveContainer указан как дополнительный . В качест­ ве допустимого контейнера (Possible superior) указаны организационные единицы (organizationalUnit). Это не­ обходимо сделать , чтобы обеспечить возможность создания объектов - ко­ манд в организационных единицах . Кроме собственных классов , потре­ буются изменения для стандартного класса пользователя (user). Для не­ го нужно добавить в качестве допус­ тимого контейнера стул ожидания (UserMoveChair).