ГОСТ Р ИСО 10303-43—2016
LOCAL
new.check.iterns
result_items
next.items
: SET OF founded_item_select;
: SET OF founded.item.select;
: SET OF founded_item_select;
END.LOCAL;
result_items :=
new.check.items
[J;
:= checked_items + item;
-- Find the set of representation.,items or founded_iterns
-- in which item is used directly.
next.items := QUERY(z <* bag_to_set{ USEDIN(item , ")) |
(’REPRESENTATION.SCHEMA.REPRESENTATION.ITEM’ IN TYPEOF(z}) OR
<’REPRESENTATION.SCHEMA.FOUNDED..ITEM"IN TYPEOF(z)));
-- If the set of next_items is not empty;
IF SIZEOF(next_iterns)
-- For each element
> 0 THEN
in the set, find the using_items recursively
REPEAT i := 1 TO HIINDEX(next_iterns);
-- Check for loop in data model, i.e. one of the next.items
-- occurred earlier in the set of check.items;
IF NOT(next_iterns[ij IN new.check.iterns) THEN
result.items
:= result_items «■next_iternsfi] +
using.items(next.itemsfil ,new.check..items);
END_IF;
END.REPEAT;
END.IF;
-- return the set of representation^terns or founded.items
-- in which the input item is used directly and indirectly.
RETURN (result.items);
END.FUNCTION;
Определение параметров:
item — объект representation.item , для которого определяются ссылающиеся на него экземпля
ры объектов representation.item и foundcd.item. Это — входной параметр функции;
chockedjtem s — набор экземпляров объектов representation.item и founded, item, которые
уже проверены. Набор вводится для того, чтобы обеспечить завершение рекурсивной функции. Это —
входной параметр функции.
4.5.5 Функция using.ropresentations
Функция using.representations возвращает набор представлений, в которых используется экзем
пляр объекта representation.item.
Объект representation.item используется в представлении если;
- на объект ссылается атрибут items объекта representation.
- на объект ссылается используемый в представлении объект representation, item или
- на объект ссылается используемый в представлении объект founded.item .
Примечание — Второв итретье изусловий требует проверки, допускающей, что объект representation,
item может быть использован объектом representation засчет того, что объект representation.item входит вдере
во связанных между собой экземпляров объектов representation.item и founded.items. Корнем дерева является
экземпляр объекта, для которого справедливо первое условие использования объектом representation.
Объект founded.item или representation.item используется в представлении в том случае, если
на него прямо или косвенно ссылается экземпляр объекта reprosentation.item. входящий во множе
ство, играющее роль атрибута items рассматриваемого экземпляра объекта representation.
EXPRESS-спеииФикация:
ь )
FUNCTION using.representations (item : founded.item.select) :SET[0:?] OF
representation;
LOCAL
26