|
FUNCTION relatives_of_product_definitions (definition_set : SET [0:?] OF product_definition, relation_subtype : STRING) : SET [0:?] OF product_definition; FUNCTION local_relatives_of_product_definitions ( definition_set : SET OF product_definition ; total_definitions : SET OF product_definition ; relation_subtype : STRING ) : SET OF product_definition ; LOCAL local_def : SET OF product_definition := [ ] ; local_pdr : SET OF product_definition_relationship := [ ] ; local_total : SET OF product_definition := [ ] ; END_LOCAL ; REPEAT i := 1 TO HIINDEX ( definition_set ) ; local_pdr := local_pdr + bag_to_set ( USEDIN ( definition_set [ i ] , relation_subtype + '.relating_product_definition' ) ) ; END_REPEAT ; REPEAT i := 1 TO HIINDEX ( local_pdr ) ; local_def := local_def + local_pdr [ i ] . related_product_definition ; END_REPEAT ; IF ( SIZEOF ( local_def ) - SIZEOF ( total_definitions ) ) = 0 THEN RETURN ( local_def ) ; ELSE local_total := total_definitions + local_def ; RETURN ( local_def + ( local_relatives_of_product_definitions ( local_def - total_definitions , local_total , relation_subtype ) ) ) ; END_IF ; END_FUNCTION ; RETURN ( local_relatives_of_product_definitions ( definition_set , definition_set , relation_subtype ) ) ; END_FUNCTION; -- relatives_of_product_definitions |
|
public class FRelatives_of_product_definitions public static Value run(SdaiContext _context, Value definition_set, Value relation_subtype) |