FUNCTION identical_to_one_of_set_of_sets
(* SCHEMA FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF; *)
FUNCTION identical_to_one_of_set_of_sets(set_a : class; set_of_sets : SET OF
class) : BOOLEAN;
LOCAL
i : INTEGER;
initial_size : INTEGER;
augmented_size : INTEGER;
set_of_forward_equivalences : SET OF same_membership := [];
set_of_backward_equivalences : SET OF same_membership := [];
augmented_set_of_sets : SET OF class := [];
END_LOCAL;
IF set_a IN set_of_sets THEN
RETURN (TRUE);
END_IF;
initial_size := SIZEOF(set_of_sets);
IF initial_size = 0 THEN
RETURN (FALSE);
END_IF;
REPEAT i := 1 TO initial_size;
set_of_forward_equivalences := set_of_forward_equivalences + USEDIN(
set_of_sets[i],
'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.SAME_MEMBERSHIP.SET_1'
);
set_of_backward_equivalences := set_of_forward_equivalences + USEDIN(
set_of_sets[i],
'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.SAME_MEMBERSHIP.SET_2'
);
END_REPEAT;
augmented_set_of_sets := set_of_sets;
IF SIZEOF(set_of_forward_equivalences) > 0 THEN
REPEAT i := 1 TO HIINDEX(set_of_forward_equivalences);
augmented_set_of_sets := augmented_set_of_sets +
set_of_forward_equivalences[i].set_2;
END_REPEAT;
END_IF;
IF SIZEOF(set_of_backward_equivalences) > 0 THEN
REPEAT i := 1 TO HIINDEX(set_of_backward_equivalences);
augmented_set_of_sets := augmented_set_of_sets +
set_of_backward_equivalences[i].set_1;
END_REPEAT;
END_IF;
augmented_size := SIZEOF(augmented_set_of_sets);
IF augmented_size = initial_size THEN
RETURN (FALSE);
END_IF;
RETURN (identical_to_one_of_set_of_sets(set_a, augmented_set_of_sets));
END_FUNCTION;
Referenced By
Defintion identical_to_one_of_set_of_sets is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:17:33-04:00