RULE property_definition_for_class_society

(* SCHEMA step_ship_schema; *)
-- ONLY IN AP215/AP216/AP218
RULE property_definition_for_class_society
FOR (applied_classification_assignment );
   LOCAL
      c_a_set : SET OF applied_classification_assignment := [];
      t1_set : SET OF property_definition := [];
      t2_set : SET OF applied_organization_assignment := [];
      violation : LOGICAL := FALSE;
   END_LOCAL;
      c_a_set := QUERY (i <* applied_classification_assignment| i.assigned_class.NAME = 'class notation');
      REPEAT i := 1 TO HIINDEX(c_a_set);
         REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
            t1_set := t1_set + c_a_set[i].items[j];
         END_REPEAT;
      END_REPEAT;
      REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
        t2_set := bag_to_set(USEDIN(t1_set[i], 'STEP_SHIP_SCHEMA.' + 'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS'));
         violation := NOT (SIZEOF(QUERY (t2_inst <* t2_set | (t2_inst.role.name = 'class society'))) = 1);
      END_REPEAT;
   WHERE
      WR1:
         NOT violation;
END_RULE;

[Top Level Definitions] [Exit]

Generated by STEP ToolsTM EXPRESS to HTML Converter
on 2007-09-24T12:42:21-04:00