RULE property_definition_for_damage_stability_definition_requires_reference

(* SCHEMA Ship_arrangement_schema; *)


   RULE property_definition_for_damage_stability_definition_requires_reference FOR (applied_classification_assignment );
   LOCAL
      c_a_set : SET OF applied_classification_assignment := [];
      c2_a_set : SET OF applied_classification_assignment := [];
      t1_set : SET OF property_definition := [];
      t2_set : SET OF representation := [];
      t3_set : SET OF property_definition_representation := [];
      t4_set : SET OF property_definition := [];
      violation : LOGICAL := FALSE;
   END_LOCAL;
      c_a_set := QUERY (i <* applied_classification_assignment| i.assigned_class.NAME = 'damage stability definition');
      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;
      c2_a_set := QUERY (i <* applied_classification_assignment| i.assigned_class.NAME = 'stability table');
      REPEAT i := 1 TO HIINDEX(c2_a_set);
         REPEAT j := 1 TO HIINDEX(c2_a_set[i].items);
            t2_set := t2_set + c2_a_set[i].items[j];
         END_REPEAT;
      END_REPEAT;
      REPEAT i := 1 TO HIINDEX(t2_set);
         t3_set := t3_set + bag_to_set(USEDIN(t2_set[i], 'SHIP_ARRANGEMENT_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION'));
      END_REPEAT;
      REPEAT i := 1 TO HIINDEX(t3_set);
         t4_set := t4_set + t3_set[i].definition;
      END_REPEAT;
      violation := t1_set <> t4_set;
   WHERE
      WR1:
         NOT violation;
   END_RULE;

[Top Level Definitions] [Exit]

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