Предопределенные классы объектно-реляционного ядра
Версия
1.0 alphaВ настоящем документе описаны классы объектов системного объектно-реляционного ядра ORE (Object-Relational Engine), посредством которых реализовано само ядро и которые используются при его эксплуатации. Перечисленные классы являются базовыми для построения на базе ядра структур данных и функционала любой предметной области.
SYSTEMOBJECT - Системный объект ядра
FORM - Описание экранной формы
CONTROL - Описание элемента экранной формы
FIELD - Элемент пользовательского интерфейса
VALUE - Универсальное значение
STRING - Строчное значение
DATE - Дата
COLOR - Цвет
NUMBER - Численное значение
ACCESSCONTROL - Класс контроля доступа
Нереализованные, но используемые понятия
Определение
CLASS
NAME AREA;
TYPE SYSTEM|STRUCTURE;
;
Характеристика
Содержит все множество доступных объектов. Служит основой функционирования ядра в пределах одного исполняемого приложения а таже выступает в роли " заместителя" (proxy) при связи приложения с сервером приложений или в роли "заглушки" (stub) при связи сервера приложений с клиентским приложением. В явном виде в языке не используется.
Определение
CLASS
NAME ENTITY;
TYPE SYSTEM|PURE;
;
Характеристика
Является чисто абстрактным для всех остальных составных элементарных значений и составных объектов. В явном виде в языке не используется.
Базовые классы
Нет.
Атрибуты
Нет.
Методы
Нет.
Производные классы
Определение
CLASS
NAME VALUE;
PARENT (ENTITY);
TYPE STRUCT|SYSTEM|VALUE;
;
Определение
CLASS
NAME REFERENCE;
PARENT (VALUE);
TYPE STRUCT|SYSTEM|VALUE;
;
COLLECTION - Множество объектов
Определение
CLASS
NAME COLLECTION;
PARENT (VALUE);
TYPE STRUCT|SYSTEM|VALUE;
;
Определение
NAME OBJECT;
PARENT (ENTITY);
TYPE STRUCT|SYSTEM|PURE;
Характеристика
Является чисто абстрактным для всех остальных составных объектов.
Базовые классы
Атрибуты
ID - уникальный системный идентификатор объекта. Может быть определен пользователем, иначе - генерируется системой при необходимости. После означивания не должен изменяться пользователем.
OWNER - ссылка на другой объект, "владеющий" данным объектом. Владение означает, что данный объект не может быть удален иначе, чем в контексте объекта-владельца и что при удалении объекта-владельца данный объект удаляется автоматически.
ELEM - ссылка на атрибут класса объекта-владельца, посредством которого владелец ссылается на данный объект.
CLASS - ссылка на "основной" класс, экземпляром которого является данный объект. Основным классом является неабстрактный класс, в контексте которого создан данный объект.
CLASSES - множество всех абстрактных и неабстрактных классов, экземпляром которых является данный объект, атрибуты которых он имеет и методы которых к нему применимы.
VALUES - множество всех значений атрибутов данного объекта, определяемых всеми абстрактными и неабстрактными классами, экземпляром которых является данный объект.
JOINS - множество всех объектов, "присоединенных" к данному объекту.
JOINED - множество всех объектов "присоединяющих" данный объект.
Методы
DEL - удалить данный объект.
SET - установить новые значения одного или нескольких атрибутов данного объекта.
EDIT - редактировать данный объект.
DUMP - выдать текстовое представление объекта.
Следующие методы применимы к объектам, являющихся экземплярами класса METHOD, то есть реализующими исполняемый процесс.
RUN - выполнить процесс.
ENTERINPUT - ввести входные параметры (аргументы) процесса.
VIEWOUTPUT - вывести выходные параметры процесса.
Производные классы
CLASS - Класс произвольных объектов
Определение
Характеристика
Служит для описания и хранения в рабочей области экземпляров объектов и их атрибутов.
Базовые классы
Атрибуты
NAME - имя класса, используется для идентификации класса.
TEXT - расширенное описание класса.
TYPE - тип класса, описанный комбинацией ключевых слов, указывающих на характер использования данного класса. Ключевые слова пречисляются через вертикальную черту "|" без пробелов. Допустимы следующие ключевые слова:
VALUE - класс определяет "элементарное" самостоятельное значение, и не может иметь экземпляров иначе, чем образуя значения атрибутов других "составных" объектов.
STRUCTURE (по умолчанию) - класс определяет "составной" объект, то есть объект, имеющий одно или более значений в качестве атрибута, а не являющийся сам самостоятельным значением.
OBJECTIVE (по умолчанию) - класс может иметь экземпляры, но не может иметь производные классы.
ABSTRACT - класс является "просто абстрактным" и может иметь объекты-экземпляры, но не может являться "основным" классом для создания объекта-экземпляра, то есть, данный класс должен иметь производные от него неабстрактные классы, экземпляры которых будут также и экземплярами данного класса.
PURE -
класс является "чисто абстрактным", и не может иметь объектов, экземпляров входящих во множество экземпляров данного класса, хотя и может иметь объекты-экземпляры производных от данного класса "просто абстрактных" и неабстрактных классов.OWNED - класс является "владеемым по определению", то есть его объекты-экземпляры могут создаваться только в контексте объектов-экземпляров какого-либо другого класса.
Взаимоисключающие сочетания:
VALUE |STRUCTURE
OBJECTIVE|ABSTRACT (за исключением классов
CLASS и METHOD )TABLE - имя таблицы реляционной базы данных, или любого другого источника данных, доступного посредством ODBC интерфейса. Если класс не является "чисто абстрактным", в таблице с указанным именем будут хранится значения всех атрибуты данного класса, а также всех атрибутов "чисто абстрактных" классов, являющихся базовыми по отношению к данному классу.
ATTRIBUTES - множество всех атрибутов данного класса.
METHODS - множество всех методов, применимых к данному классу.
OBJECTS - множество всех объектов-экземпляров данного класса.
PARENT - ссылка на класс, являющийся "основным" базовым классом для данного класса. "Основным" базовым классом, является тот класс, от которого происходил бы данный класс, если бы не использовалась концепция множественного наследования. Данная ссылка перекрывает атрибут
OWNER объекта, то есть, объект "основного" класса явлется "владельцем" по отношению к объекту производного класса, ссылающегося на него посредством этого атрибута.EXTENDS - множество всех классов, призводных от данного класса, как в концепции иерархического наследования, так и в концепции множественного наследования. В это множестов входят как "прямые наследники" - классы, ссылающиеся на данный класс посредством атрибута PARENT(OWNER), так и "непрямые наследники", ссылающиеся посредством атрибута PARENT(OWNER) на другие классы.
EXTENDED - множество всех классов, базовых для данного класса, как в концепции иерархического наследования, так и в концепции множественного наследования. В это множестов входят как "прямой родитель" - класс, на который данный класс ссылается посредством атрибута PARENT(OWNER), так и "непрямые родители" - прочие базовые классы.
Методы
NEW - создать новый объект-экземпляр данного класса.
GET - получить один или несколько объектов-экземпляров данного класса.
ATTACH - актуализировать множество объектов данного класса, если класс является хранимым во внешней базе данных и имеется непустое значение атрибута
Производные классы
METHOD, FORM
ATTRIBUTE - Атрибут объекта произвольного класса
Определение
Характеристика
Служит для описания и атрибутов объектов - экземпляров соответствующих классов.
Базовые классы
Атрибуты
NAME - имя атрибута, используется для идентификации атрибута.
TEXT - расширенное описание атрибута.
ACCESS - тип доступа к атрибуту при наследовании, описанный комбинацией ключевых слов. Ключевые слова пречисляются через вертикальную черту "|" без пробелов. Допустимы следующие ключевые слова:
PUBLIC (по умолчанию) - значение атрибута доступно на изменение.
PRIVATE - значение атрибута доступно на изменение только в методах данного класса.
PROTECTED - значение атрибута доступно на изменение в методах данного и производных классов.
STATIC - значение соответствующего атрибута уникальны и неизменны для всех экземпляров данного класса.
KEY - тип данного атрибута с точки зрения использования его значения для идентификации объектов данного класса, описанный комбинацией ключевых слов. Ключевые слова пречисляются через вертикальную черту "|" без пробелов. Допустимы следующие ключевые слова:
NO (по умолчанию) - значение атрибута не является ключевым и не уникально среди экземпляров данного класса.
DUP - значение атрибута является ключевым, но не уникально среди экземпляров данного класса.
UNIQUE - значение атрибута уникально среди экземпляров данного класса.
ORDER - порядковый номер атрибута среди атрибутов данного класса.
TYPE - тип данного атрибута, с точки зрения определяемых им значений, описанный комбинацией ключевых слов. Ключевые слова пречисляются через вертикальную черту "|" без пробелов. Допустимы следующие ключевые слова:
SINGLE (по умолчанию) - значение данного атрибута представлено одним значением.
COLLECTION - значение атрибута представлено множеством других объектов.
EMBEDDED (по умолчанию) - значение данного атрибута "входит" в объект и хранится вместе с ним.
REFERENCE - значение атрибута является ссылкой на другой объект.
OWNED (по умолчанию) - объекты, на которые объект ссылается посредством данного атрибута, или которые входят во множество объектов, представляющее данный атрибут, являются "владеемыми" по отношению к данному объекту, а сам объект является их "владельцем". Такие атрибуты являются "владеющими".
SHARED - объекты, на которые объект ссылается посредством данного атрибута, или которые входят во множество объектов, представляющее данный атрибут, не являются являются "владеемыми" по отношению к данному объекту. Они могут иметь других владельцев и не могут быть удалены, до тех пор, пока данный объект на них ссылается или имеет их в своем множестве объектов. Такие атрибуты являются "разделяемыми".
OWNER - данный атрибут "перекрывает" атрибут OWNER класса OBJECT. Это означает, что ссылка, определяемая данным атрибутом, указывает на "владельца" данного объекта.
DEFAULT - данный атрибут является "умалчиваемым" атрибутом, то есть при обращении к объекту с запросом, в котором не указано имя атрибута, будет использовано значение данного атрибута.
- значение данного атрибута является "вычислимым", то есть не хранися в памяти, а вычисляется на основании значений других атрибутов данного объекта.PASSWORD - значение данного атрибута является паролем, то есть не доступно на просмотр при вводе.
Следующие ключевые слова применимы к атрибутам, описывающим параметры объектов, являющихся экземплярами класса
METHOD, то есть реализующими исполняемый процесс.LOCAL (по умолчанию) - данный атрибут (параметр) метода является локальным значеним метода.
IN - данный атрибут (параметр) метода является входным значением (аргументом) метода.
OUT - данный атрибут (параметр) метода является выходным значеним (результатом исполнения) метода.
Взаимоисключающие сочетания:
SINGLE|COLLECTION
EMBEDDED|REFERENCE
EMBEDDED|COLLECTION (ограничение текущей версии)
REFERENCE|COLLECTION (ограничение текущей версии)
OWNED|SHARED
OWNER|COLLECTION
OWNER|EMBEDDED
DOMAIN - ссылка на класс значений или объектов, изпользуемых при означивании данного атрибута
.NULLS - указание на возможность хранения объекта при отсутствии значения данного атрибута. Допустимы следующие ключевые слова:
YES (по умолчанию) - допустимо отсутствие значения.
NO - отсутствие значения недопустимо, объект считается невалидным при отсутствии значения данного атрибута.
PRECISION - количество значащих позиций при вводе и хранении численного или строчного значения.
SCALE - количество точек после запятой при вводе численного значения.
FORMAT - формат ввода и вывода численного значения или даты со временем.
QUERY - ссылка на метод, определяющий формирование значения данного атрибута по умолчанию при создании объекта данного класса или метод, осуществляющий расчет вычислимого атрибута в момент запроса на его значение.
CONDITION - символьное выражение, определяющее критерий отбора объектов для формирования множеств, представляющих вычислимый (
CALCULATED) атрибут типа (COLLECTION), служит в дополнение или в замену методу, определяемому значением атрибута QUERY .COUPLE - имя атрибута, являющегося "парным" данному. Означает, что значение данного атрибута является ссылкой на другой объект или множеством других объектов. При этом каждый из объектов, соответствующих ссылке или множеству, также ссылается на данный объект или имеет его во множестве объектов посредством значения своего атрибута с именем, указанным в COUPLE.
Методы
Нет.
Производные классы
CONTROL
METHOD - Исполнимый метод, процедура или функция
Определение
CLASS
NAME METHOD;
PARENT (CLASS);
TYPE STRUCT|SYSTEM;
ATTRIBUTES
NAME TYPE; DOMAIN(STRING);,
NAME CHAIN; TYPE REF; DOMAIN(METHOD);,
NAME CALLS; TYPE COLL|OWNED; DOMAIN(OPERATOR);,
NAME LOGIC; DOMAIN(STRING);,
NAME SOURCE; DOMAIN(STRING);,
NAME LOCATION; DOMAIN(STRING);
;
;
Характеристика
Служит для описания и исполнения в рабочей области методов применительно к объектам.
Базовые классы
Атрибуты
OWNER - "класс" метода, в том смысле, что значение данного атрибута указывает на объект класса CLASS, применительно к объектам которого исполняется данный метод.
TYPE - тип данного метода, с точки зрения характера производимых им изменений а также его физической реализации, описанный комбинацией ключевых слов. Ключевые слова пречисляются через вертикальную черту "|" без пробелов. Допустимы следующие ключевые слова:
GET - метод возвращает один или несколько объектов.
SET - метод устанавливает новые значения атрибутам одного или нескольких объектов.
NEW - метод возвращает новый объект.
DEL - метод один или несколько объектов.
RUN - метод осуществляет исполнение другого метода применительно к одному или нескольким объектам.
ORLCODE (по умолчанию) - метод реализован посредством множества CALLS данного метода.
PROGRAM - метод реализован внутренней подпрограммой исполняемого приложения.
ORLTEXT - метод реализован посредством исходного текста на языке ORL (не реализовано)
SQLTEXT - метод реализован посредством исходного текста на языке SQL (не реализовано)
VBSCRIPT - метод реализован посредством исходного текста на языке VBSCRIPT (не реализовано)
JAVASCRIPT - метод реализован посредством исходного текста на языке JAVASCRIPT (не реализовано)
TRANSACTSQL - метод реализован в виде хранимой процедуры на языке TRANSACTSQL (не реализовано)
CHAIN - метод, исполняемый непосредственно после завершения исполнения данного метода и получающий на входе результаты исполнения данного метода. Возвращаемым результатом исполнения данного метода считается результат, возвращенный последним методом в цепочке методов, ссылающихся друг на друг посредством атрибута CHAIN, начиная с данного метода.
множество исполнимых операторов данного метода.LOGIC - логика исполнения метода, описанная комбинацией ключевых слов. Ключевые слова пречисляются через вертикальную черту "|" без пробелов. Допустимы следующие ключевые слова:
SEQ (по умолчанию) - метод является последовательно выполнимым, то есть, переход к следующему оператору осуществляется только по завершении выполнения предыдущего.
PAR - метод является параллельно выполнимым, то есть операторы могут выполняться независимо друг от друга и в любом порядке.
ALL или AND (по умолчанию) - метод типа GET, реализующий условие выбора объектов, причем все условия множества CALLS соединены друг с другом условием логического "И", то есть, условие считается выполненным, если выполнены все условия множества CALLS.
ANY или OR - метод типа GET, реализующий условие выбора объектов, причем все условия множества CALLS соединены друг с другом условием логического "ИЛИ", то есть, условие считается выполненным, если выполнено хотя бы одно условие из множества CALLS.
CODE - текстовое представление исходного кода метода.
LOCATION - имя метода в случае реализации его в виде хранимой процедуры.
Методы
Нет.
Производные классы
OPERATOR - Исполнимый оператор метода, процедуры или функции
Определение
Характеристика
Служит для описания и исполнения в рабочей области операторов методов. Фактически, не являясь формально производным классом от METHOD, наследует часть его атрибутов и функциональных свойств. Реализует операторы программирования типа присвоения, условия, блока операторов, вызова метода.
Базовые классы
Атрибуты
TYPE - тип оператора, с точки того, исполнимый он или условный, описанный комбинацией ключевых слов. Ключевые слова пречисляются через вертикальную черту "|" без пробелов. Допустимы следующие ключевые слова:
DO - оператор является исполнимым и выполняет изменение значений атрибутов и/или исполнение методов.
IF - оператор является условным и выполняет сравнение значений атрибутов и/или результатов исполнения методов c константами, значениями других атрибутов и т.д.
CALLS - аналогичен атрибуту CALLS класса METHOD.
LOGIC - аналогичен атрибуту LOGIC класса METHOD.
LVALUE - левая часть операторного выражения, если в левой части стоит указание на атрибут объекта или метода.
LQUERY - левая часть операторного выражения, если в левой части стоит запрос на выборку объекта.
OPERATION - операция операторного выражения, если операция является стандартной. Стандартными операциями, в зависимости от типа операндов, могут являться следующие.
"=" (по умолчанию) - равно или присвоить
">" - больше
"<" - меньше
"!>" - не больше
"!<" - не меньше
">=" - больше или равно
"<=" - меньше или равно
"<>" - не равно
"!=" - не равно
":=" - присвоить
"+=" - добавить
"-=" - вычесть
"*=" - домножить
"/=" - разделить
"==" - равно
NEW - создать новый объект
DEL - удалить один или несколько существующих объектов
RUN - исполнить объект
GET - выбрать один или несколько существующих объектов
SET - установить значения атрибутов одному или нескольким из существующих объектов
METHOD - метод, исполняемый в рамках операторного выражения, если оно не реализуется одной из стандартных операций.
VALUE - правая часть выражения, если в правой части стоит константа или указание на атрибут объекта или метода.
QUERY - правая часть операторного выражения, если в правой части стоит запрос на выборку или создание нового объекта.
Методы
Нет.
Производные классы
Нет.
Определение
Характеристика
Служит для формирования произвольных запросов к рабочей области. Полностью соответствует классу METHOD, но является "владеемым по определению", то есть экземпляры данного класса не могут существовать иначе, как в контексте какого-либо другого объекта или процесса.
Базовые классы
Атрибуты
Нет.
Методы
Нет.
Производные классы
Нет.
Определение
Характеристика
Реализует разбор исходного текста на языке ORL.
Базовые классы
Атрибуты
Нет.
Методы
Нет.
Производные классы
Нет.
Определение
Характеристика
Является базовым классом для описания разграничения прав доступа пользователей к данным.
Базовые классы
Атрибуты
Нет.
Методы
Нет.
Производные классы
ACCESSGRANT, ACCESSRIGHT, ACCESSLEVEL.
Определение
Характеристика
Описывает группу прав доступа, идентифицируемую с отдельным пользователем или группой пользователей.
Базовые классы
Атрибуты
NAME - Короткое имя пользователя или группы пользователей, идентифицируемого(ых) данной группой привелегий.
TEXT - Длинное имя пользователя или группы пользователей, идентифицируемого(ых) данной группой привелегий.
PASSWORD - Пароль пользователя или общий пароль группы пользователей, идентифицируемого(ых) данной группой привелегий.
RIGHTS - Множество прав, определяющих данную группу привелегий.
Методы
Нет.
Производные классы
Нет.
Определение
Характеристика
Идентифицирует право доступа конкретного пользователя или группы пользователей к определенному классу данных.
Базовые классы
Атрибуты
OWNER - Ссылка на группу привелегий, для которой определяется данное право.
ACCESSCLASS - Ссылка на класс, к объектам которого определяются права доступа..
LEVEL - Ссылка на уровень доступа, определяющий доступ к классу..
CONDITION - Условие доступа с указанным уровнем доступа к экземплярам данного класса.
Методы
Нет.
Производные классы
Нет.
Определение
Характеристика
Область значений визможных прав доступа. Используется при указании уровня доступа к определеному классу данных конкретным пользователем или группы пользователей.
Базовые классы
Атрибуты
NAME - Короткий код, определяющий уровень доступа.
TEXT - Длинное описание данного уровня доступа.
Методы
Нет.
Производные классы
Нет.
Экземпляры
NAME |
TEXT |
NO |
Нет прав |
LIST |
Просмотр списка |
GET |
Просмотр |
SET |
Изменение |
NEW |
Создание |
DEL |
Удаление |
RUN |
Запуск |
FULL |
Все дозволено |
Нереализованные, но используемые понятия
Удаленная рабочая область - экземпляр класса AREA, реализующий обращение к приложениям, исполняющим системное ядро на других компьютерах или в других адресных пространствах. Используется для реализации сервера приложений, реализующего удаленную рабочую область сервера для каждого из клиентов, каждый из которых, в свою очередь, реализует удаленную рабочую область по отношению к серверу.