FUNCTION get_base_component
(input : stratum_armx) : SET [0:?] OF area_component_armx;
LOCAL sf : SET OF Stratum_feature_armx := bag_to_set(USEDIN(input,'LAYERED_INTERCONNECT_MODULE_DESIGN_XIM.STRATUM_FEATURE_ARMX.RESIDENT_STRATUM')); sftc : SET OF Stratum_feature_template_component_armx := bag_to_set( USEDIN(input,'LAYERED_INTERCONNECT_MODULE_DESIGN_XIM.STRATUM_FEATURE_TEMPLATE_COMPONENT_ARMX.IMPLEMENTATION_OR_RESIDENT_STRATUM')); i : INTEGER := 0; ac: SET OF Area_component_armx; END_LOCAL; REPEAT i := 1 TO HIINDEX(sf) BY 1; ac := bag_to_set(QUERY(temp <* USEDIN(sf[i], 'LAYERED_INTERCONNECT_MODULE_DESIGN_XIM.STRATUM_FEATURE_TEMPLATE_COMPONENT_ARMX.IMPLEMENTATION_OR_RESIDENT_STRATUM') | (('LAYERED_INTERCONNECT_MODULE_DESIGN_XIM.AREA_COMPONENT_ARMX' IN TYPEOF(temp)) AND (temp.is_base = TRUE)))); END_REPEAT; REPEAT i := 1 TO HIINDEX(sftc) BY 1; IF(('LAYERED_INTERCONNECT_MODULE_DESIGN_XIM.AREA_COMPONENT_ARMX' IN TYPEOF(sftc[i])) AND (sftc[i].is_base = TRUE)) THEN ac := ac + sftc[i]; END_IF; END_REPEAT; RETURN(ac); END_FUNCTION; -- get_base_component
|