ГОСТ Р МЭК 61360-2—2013
Функция compute_known_property_constraints вычисляет набор ограничений свойств property_
constraints, применимых для свойств набора классов. Ограничения, представленные их идентифи
каторами. не вычисляются. Если определение класса недоступно, то функция возвращает только те
ограничения свойств property_constraints. которые могут быть вычислены.
Примечание — Если словарное определение dictionary_definition класса недоступно в рассматрива
емом контексте обмена (контекст обмена библиотеки PLIB никогда не предполагается полным), то собственный
суперкласс гложет быть неизвестен. Следовательно, ограничения, определенные данным суперклассом, не могут
быть вычислены функцией compute_known_property_constraint. И наоборот, если все представительные супер
классы рассматриваемого класса доступны в том же контексте обмена, то все ограничения, применимые вданном
классе, могут быть вычислены за один обход представительного дерева наследственности, даже если некоторые
из указанных суперклассов импортируют свойства с помощью априорного семантического соотношения a_priori_
semantic_relationship, такого как условный класс элементов item_class_case_of.
Пример представления на языке EXPRESS:
*)
FUNCTION compute_knowr._property_constraints (classes:Sbl OF class_BSU):
SET OF property_constraint;
LOCAL
s: SET OF property_constrair.t[);
END_LOCAL;
REPEAT nbI TO SIZEOF (classes);
IF SIZEOF(classes(r.b].definition)-1
THEN
REPEAT i1 TO
SIZEOF(classes(nb}.definition(1}\class .constraints) ;
IF {(’1S013584_IEC61360_CLASS_C0NSTRAINT_SCHEKA’
+’.PROPERTY_CONSTRAINT’)
IN TYPEOF
(classes(nb].definition(1)\class.constraints(i]))
THEN
ss + classesfnb].definition[1]\class.constraints[i];
END_IF;
END_R£PEAT;
IF <C1S013584_IEC61360_1TEM_CLASS_CASE_OF_SCHEMA.’
г ’A_PR:OR:_SEMANTIC_RbLATIONSHIP’)
IN TYPEOF (classes(nb).definition(1]))
THEN
REPEAT i1 TO
SIZEOF(classes(nb].definition11]
\a_priori_semantic_relationship
.referenced_constraints);
IF ((,1S013584_1EC61360_CLASS_CONSTRA1NT_SCHEMA*
♦’.PROPEKTY_CONSTRAINT’) IN TYPEOF
(classes[nb].definition(l)
\a_priori_semantic_relationship
.referenced_constraints[i]))
119