RULE no_approvals_except_in_approval_history

(* 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

[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:17:03-04:00