Класс

Материал из ODANT Wiki
Перейти к: навигация, поиск

Класс - основная структурная единица технологии ODA. Множество объектов, характеризующихся общими свойствами, назначением и поведением. В объектных СУБД эти характеристики определяются общим набором атрибутов и методов.
В дальнейшем понятие «класс» мы будем применять для совокупности описания структуры данных и самих данных.
В технологии ODA структура класса определяется с помощью специального описания ODABML, основанного на базе языка XML.
Корневым элементом класса является элемент с именем <CLASS>, внутри которого содержится набор разделов, предназначенных для описания различных свойств, характеристик и поведения объектов класса.

Рассмотрим основные элементы и атрибуты структуры класса. Следует заметить, что как набор элементов класса, так и атрибуты этих элементов являются довольно гибкими и могут быть изменены администратором системы, самой системой или модулями, входящими в состав системы. Тем не менее, технологией предусмотрен базовый набор атрибутов, необходимых для корректной работы класса.

Состав корневого элемента класса:

Author – атрибут класса, содержащий идентификатор, по которому распознается создатель класса.
Category – категория, в которую входит класс. В древе классов, отображается как папка
ClassId - уникальный идентификатор класса
Date - дата создания класса
DeployDate - ***
Icon - ***
Label - имя используемое либо как краткое от имени класса, либо как более удобное для пользователя, то есть подверженное изменению со стороны пользователя. Если <label> отсутствует, то используется <name>;
Name - имя класса, получаемое при создании класса
Update - дата, время последнего обновления
Pack - выражение, формирующее имена при создании пакетов объектов
ByUser - атрибут, устанавливающий режим хранения и доступа к данным по пользователям
ParentSrc - адрес нахождения приоритетного родительского класса
XName - выражение, формирующее, имя объектов класса (в поле Name)
i - атрибут, показывает, что данный класс наследный
Start - атрибут, свидетельствует о наличии стартовых методов в модуле класса
Public - атрибут, свидетельствует о наличии публичных методов в модуле класса
Abstract - атрибут, свидетельствует о том, что класс не предназначен для хранения данных
Actual - ***
DEPLOY Childs - ***
Корневой элемент может содержать несколько разделов. Наличие данных разделов регламентировано внешними модулями, либо настройками структуры файлов <SETTINGS> (данные файлы описывают работу сервера и конфигуратора).
<METADATA> - главный раздел, в котором производится описание структуры данных класса.
Если присутствует <METADATA i="True"> - значит, описанные ниже поля, наследные. Структура данных описывается с помощью элемента под названием <ATTR> - атрибут.
Format - ***
Label - имя поля, которое вводится для пользователя;
Name - имя поля, которое используется внутри документа;
Type - тип данных, который используется для отображения значений и работы с этими значениями. Каждый тип <type> - отдельная программа, содержащая инструкцию о работе данного «типа» и совместимости с другими стандартными «типами».
List – ***
ValueList – список значений, которые представляются в поле, как выпадающий список
XValue – выражение, выполняющее функцию в данном поле, например, отображающее значение другого атрибута (поля)
HideOnGrid/ HideOnEdit – скрыть в таблице/на форме
ReadOnly - только чтение
<ATTR> имеет 2 базовых атрибута: <name> и <type>. Все остальные атрибуты, используемые в описании полей, соответствуют структуре, заложенной в тип данных. Внутри атрибутов <ATTR> 1-го уровня могут находиться вложенные атрибуты <ATTR>, тогда в описании этого класса атрибут и элемент имеют одно и тоже имя (принцип полиморфизма).
<SECURITY> - ***
<METHODS> - дополнительный раздел, предназначенный для хранения описаний различных модулей, включаемых в работу данного класса.
<XSLT> - динамический раздел, создаваемый в классе во время работы. XSLT раздел содержит инструкцию по пересчету объектов класса.
Раздел <updates> используется при внесении каких-либо изменений в класс.
<CHILDS> - динамически создаваемый раздел, в который помещаются все наследники данного класса.
<EXCHANGE> - в данный раздел записываются электронные адреса, на которые нужно направлять любые изменения, произошедшие с объектами данного класса. Сервер принимает сообщения и встраивает изменения в свою Базу.
<MESSAGES> - раздел предназначен для вывода сообщений пользователю. Можно запрограммировать какое-то количество сообщений, установить условия при которых они будут выполняться и затем выводить их при работе. Эти разделы идут внутри корня класса (корневые разделы), их может быть любое количество и они могут расширяться по мере необходимости.
Принцип работы
Класс хранится в папке, название которой совпадает с названием класса.
Каждый класс несет в себе информацию о значительной части всей системы.