FUNCTION get_base_component
(input : Stratum) : SET [0:?] OF Area_component;
LOCAL sf : SET OF Stratum_feature := bag_to_set(USEDIN(input,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE.RESIDENT_STRATUM')); sftc : SET OF Stratum_feature_template_component := bag_to_set( USEDIN(input,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT.IMPLEMENTATION_OR_RESIDENT_STRATUM')); i : INTEGER := 0; ac: SET OF Area_component; END_LOCAL; REPEAT i := 1 TO HIINDEX(sf) BY 1; ac := bag_to_set(QUERY(temp <* USEDIN(sf[i], 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT.IMPLEMENTATION_OR_RESIDENT_STRATUM') | (('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.AREA_COMPONENT' IN TYPEOF(temp)) AND (temp.is_base = TRUE)))); END_REPEAT; REPEAT i := 1 TO HIINDEX(sftc) BY 1; IF(('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.AREA_COMPONENT' 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
|