4.9.1 Функция асусlic_presentation_representation_relatiоnship
Функция acyclic_presentation_representation_relationship проверяет, является ли ацикличным граф, определенный объектом presentation_representation_relationship, связанным объектом presentation_representation и всеми другими объектами presentation_representation_relationship, ссылающимися на данный presentation_representation. Функция возвращает значение TRUE, если граф является ацикличным, и значение FALSE - в противном случае.
EXPRESS-спецификация | ||||||||
*) | ||||||||
FUNCTION acyclic_presentation_representation_relationship | ||||||||
( relation | : presentation_representation_relationship; | |||||||
children | : SET OF presentation_representation) : BOOLEAN | |||||||
LOCAL | ||||||||
x | : SET OF presentation_representation_relationship; | |||||||
local_children | : SET OF presentation_representation | |||||||
END LOCAL; | ||||||||
REPEAT i : = 1 TO HIINDEX (children); | ||||||||
IF relation\representation_relationship.rep_1 :=: children[i] THEN | ||||||||
RETURN(FALSE); | ||||||||
END_IF; | ||||||||
END_REPEAT; | ||||||||
x := bag_to_set (USEDIN (relation\representation_relationship.rep_1, | ||||||||
'REPRESENTATION_SCHEMA.' + | ||||||||
'REPRESENTATION_RELATIONSHIP.REP_2)); | ||||||||
local_children := children + relation\representation_relationship.rep_1; | ||||||||
IF SIZEOF (x) > 0 THEN | ||||||||
REPEAT i:=1 TO HIINDEX (x); | ||||||||
IF NOT acyclic_presentation_representation_relationship | ||||||||
(x[i], local_children) THEN | ||||||||
RETURN (FALSE); | ||||||||
END_IF; | ||||||||
END_REPEAT; | ||||||||
END_IF; | ||||||||
RETURN (TRUE); | ||||||||
END_FUNCTION; | ||||||||
(* |
Определения аргументов
relation - проверяемый объект presentation_representation_relationship. Данный объект является исходным для рассматриваемой функции;
children - объекты presentation_representation, связанные посредством объекта relation. Они служат исходными данными для рассматриваемой функции. В качестве исходных данных набор этих объектов содержит только атрибут rер_2 объекта relation.
EXPRESS-спецификация |
*) |
END_SCHEMA; - - presentation_organization_schema |
(* |