|
RULE restrict_part_occurrence FOR (product_definition); LOCAL part_occurrences : SET OF product_definition := QUERY ( pd <* product_definition | ( pd . frame_of_reference . name = 'part occurrence' ) ) ; END_LOCAL ; WHERE wr1: SIZEOF ( QUERY ( pd <* part_occurrences | ( NOT ( pd . name IN [ 'single instance' , 'selected instance' , 'quantified instance' , 'specified instance' ] ) ) ) ) = 0 ; wr2: SIZEOF ( QUERY ( pd <* part_occurrences | ( SIZEOF ( QUERY ( pdr <* USEDIN ( pd , 'part_occurrence_mim.' + 'product_definition_relationship.related_product_definition' ) | pdr . name = 'definition usage' ) ) <> 1 ) AND ( SIZEOF ( QUERY ( cd <* USEDIN ( pd , 'part_occurrence_mim.' + 'configuration_design.design' ) | ( cd . name = 'occurrence usage definition' ) AND ( NOT ( 'part_occurrence_mim.' + 'product_identification' IN TYPEOF ( cd . configuration ) ) ) ) ) <> 1 ) ) ) = 0 ; wr3: SIZEOF ( QUERY ( pd <* part_occurrences | ( SIZEOF ( QUERY ( cd <* USEDIN ( pd , 'part_occurrence_mim.' + 'product_definition_relationship.related_product_definition' ) | ( 'part_occurrence_mim.' + 'product_definition_usage' IN TYPEOF ( cd ) ) ) ) = 0 ) AND ( SIZEOF ( USEDIN ( pd , 'part_occurrence_mim.' + 'product_definition_occurrence_relationship.occurrence' ) ) = 0 ) ) ) = 0 ; wr4: SIZEOF ( QUERY ( pd <* part_occurrences | ( pd . name = 'selected instance' ) AND NOT valid_selected_instance_representation ( pd ) ) ) = 0 ; wr5: SIZEOF ( QUERY ( pd <* part_occurrences | ( pd . name = 'quantified instance' ) AND ( SIZEOF ( QUERY ( ppd <* USEDIN ( pd , 'part_occurrence_mim.' + 'property_definition.definition' ) | ( ppd . name = 'occurrence quantity' ) AND ( SIZEOF ( QUERY ( pdr <* USEDIN ( ppd , 'part_occurrence_mim.' + 'property_definition_representation.definition' ) | ( pdr . used_representation . name = 'quantity' ) AND ( SIZEOF ( pdr . used_representation . items ) = 1 ) AND ( SIZEOF ( QUERY ( i <* pdr . used_representation . items | ( 'part_occurrence_mim.' + 'measure_representation_item' IN TYPEOF ( i ) ) AND ( i . name = 'quantity measure' ) ) ) = 1 ) ) ) = 1 ) ) ) = 0 ) ) ) = 0 ; wr6: SIZEOF ( QUERY ( pd <* part_occurrences | ( pd . name = 'specified instance' ) AND ( SIZEOF ( QUERY ( pdor <* USEDIN ( pd , 'part_occurrence_mim.' + 'product_definition_occurrence_relationship.occurrence' ) | 'part_occurrence_mim.' + 'specified_higher_usage_occurrence' IN TYPEOF ( pdor . occurrence_usage ) ) ) = 0 ) ) ) = 0 ; END_RULE; -- restrict_part_occurrence |
|
public class RRestrict_part_occurrence public int rWr6(SdaiContext _context) public int rWr5(SdaiContext _context) public int rWr4(SdaiContext _context) public int rWr3(SdaiContext _context) public int rWr2(SdaiContext _context) public int rWr1(SdaiContext _context) public int run(SdaiContext _context, A_string violations) |