|
FUNCTION assembly_shape_is_defined (assy : next_assembly_usage_occurrence) : BOOLEAN; LOCAL sdr_set : SET OF shape_definition_representation := [ ] ; srr_set : SET OF shape_representation_relationship := [ ] ; sdr1_set : SET OF shape_definition_representation := [ ] ; pd_set : SET OF property_definition := [ ] ; pdr_set : SET OF product_definition_relationship := [ ] ; pds_set : SET OF product_definition_shape := [ ] ; prop_set : SET OF property_definition := [ ] ; END_LOCAL ; pd_set := bag_to_set ( USEDIN ( assy . related_product_definition , 'automotive_design.property_definition.definition' ) ) ; pdr_set := QUERY ( pdr <* bag_to_set ( USEDIN ( assy . related_product_definition , 'automotive_design.product_definition_relationship.' + 'related_product_definition' ) ) | SIZEOF ( USEDIN ( pdr , 'automotive_design.property_definition.definition' ) ) > 0 ) ; IF SIZEOF ( pd_set ) > 0 THEN REPEAT i := 1 TO HIINDEX ( pd_set ) ; sdr_set := sdr_set + QUERY ( pdr <* USEDIN ( pd_set [ i ] , 'automotive_design.property_definition_representation.' + 'definition' ) | 'automotive_design.shape_definition_representation' IN TYPEOF ( pdr ) ) ; END_REPEAT ; END_IF ; IF SIZEOF ( pdr_set ) > 0 THEN REPEAT i := 1 TO HIINDEX ( pdr_set ) ; prop_set := prop_set + bag_to_set ( USEDIN ( pdr_set [ i ] , 'automotive_design.property_definition.definition' ) ) ; END_REPEAT ; IF SIZEOF ( prop_set ) > 0 THEN REPEAT i := 1 TO HIINDEX ( prop_set ) ; sdr_set := sdr_set + QUERY ( pdr <* USEDIN ( prop_set [ i ] , 'automotive_design.' + 'property_definition_representation.definition' ) | 'automotive_design.shape_definition_representation' IN TYPEOF ( pdr ) ) ; END_REPEAT ; END_IF ; END_IF ; IF SIZEOF ( sdr_set ) > 0 THEN REPEAT i := 1 TO HIINDEX ( sdr_set ) ; srr_set := QUERY ( rr <* bag_to_set ( USEDIN ( sdr_set [ i ] \ property_definition_representation . used_representation , 'automotive_design.representation_relationship.rep_2' ) ) | 'automotive_design.shape_representation_relationship' IN TYPEOF ( rr ) ) ; pd_set := bag_to_set ( USEDIN ( assy . relating_product_definition , 'automotive_design.property_definition.definition' ) ) ; IF SIZEOF ( pd_set ) > 0 THEN REPEAT i := 1 TO HIINDEX ( pd_set ) ; sdr1_set := sdr1_set + QUERY ( pdr <* USEDIN ( pd_set [ i ] , 'automotive_design.property_definition_representation.' + 'definition' ) | 'automotive_design.shape_definition_representation' IN TYPEOF ( pdr ) ) ; END_REPEAT ; END_IF ; IF ( ( SIZEOF ( sdr_set ) > 0 ) AND ( SIZEOF ( sdr1_set ) > 0 ) ) THEN IF SIZEOF ( srr_set ) > 0 THEN REPEAT j := 1 TO HIINDEX ( srr_set ) ; IF SIZEOF ( QUERY ( pdr <* bag_to_set ( USEDIN ( srr_set [ j ] \ representation_relationship . rep_1 , 'automotive_design.property_definition_representation.' + 'used_representation' ) ) | 'automotive_design.shape_definition_representation' IN TYPEOF ( pdr ) ) * sdr1_set ) >= 1 THEN pds_set := QUERY ( x <* bag_to_set ( USEDIN ( assy , 'automotive_design.property_definition.definition' ) ) | 'automotive_design.product_definition_shape' IN TYPEOF ( x ) ) ; IF SIZEOF ( pds_set ) = 0 THEN RETURN ( FALSE ) ; END_IF ; REPEAT k := 1 TO HIINDEX ( pds_set ) ; IF SIZEOF ( QUERY ( cdsr <* USEDIN ( pds_set [ k ] , 'automotive_design.' + 'context_dependent_shape_representation.' + 'represented_product_relation' ) | ( cdsr . representation_relation :=: srr_set [ j ] ) ) ) > 0 THEN RETURN ( FALSE ) ; END_IF ; END_REPEAT ; END_IF ; END_REPEAT ; END_IF ; END_IF ; END_REPEAT ; END_IF ; RETURN ( TRUE ) ; END_FUNCTION; -- assembly_shape_is_defined |
|
public class FAssembly_shape_is_defined public static Value run(SdaiContext _context, Value assy) |