(* SCHEMA ship_structures_schema; *)
RULE no_approvals_except_in_approval_history FOR (approval);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF approval := [];
t2_set : SET OF applied_group_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* approval | VALUE_IN(which_class(a),
'approval event') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_STRUCTURES_SCHEMA.APPLIED_GROUP_ASSIGNMENT.ITEMS'));
violate := SIZEOF(t2_set) = 0;
REPEAT k := 1 TO HIINDEX(t2_set) BY 1 WHILE NOT violate;
violate := NOT VALUE_IN(which_class(t2_set[k].assigned_group),
'approval history');
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- no_approvals_except_in_approval_history
Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:17:03-04:00