FUNCTION find_shape_representation_of_product_definition
(item : product_definition) : SET [0:?] OF shape_representation;
LOCAL local_p_d_s: SET OF product_definition_shape := []; local_p_d_s2: BAG OF product_definition_shape := []; local_s_d_r: SET OF shape_definition_representation := []; local_s_d_r2: BAG OF shape_definition_representation := []; local_s_r: SET OF shape_representation := []; i : INTEGER; END_LOCAL; -- find product_definition_shape representing the product_definiton local_p_d_s2 := local_p_d_s2 + QUERY(pd <* USEDIN (item, 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)); local_p_d_s := bag_to_set(local_p_d_s2); -- find shape_definition_representations refereing TO the local_p_d_s REPEAT i := 1 TO HIINDEX (local_p_d_s); local_s_d_r2 := local_s_d_r2 + QUERY(pdr <* USEDIN (local_p_d_s[i], 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)); END_REPEAT; local_s_d_r := bag_to_set (local_s_d_r2); REPEAT i := 1 TO HIINDEX (local_s_d_r); IF('PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF (local_s_d_r[i].used_representation)) THEN local_s_r := local_s_r + local_s_d_r[i].used_representation; END_IF; END_REPEAT; RETURN (local_s_r); END_FUNCTION; -- find_shape_representation_of_product_definition
|