RULE restrict_concept_feature_operator FOR (concept_feature_operator); WHERE wr1: SIZEOF ( QUERY ( cfo <* concept_feature_operator | NOT ( cfo. name IN ['and' , 'or' , 'oneof' , 'not' , 'implication'] ) ) ) =0; wr2: SIZEOF ( QUERY ( cfo <* concept_feature_operator | ( cfo. name ='implication' ) AND ( SIZEOF ( QUERY ( cfrwc <* USEDIN ( cfo , 'AUTOMOTIVE_DESIGN.'+'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.'+ 'CONDITIONAL_OPERATOR' ) | SIZEOF ( QUERY ( ccf <* USEDIN ( cfrwc , 'AUTOMOTIVE_DESIGN.'+'CONDITIONAL_CONCEPT_FEATURE.'+ 'CONDITION' ) | NOT ( 'AUTOMOTIVE_DESIGN.'+ 'INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( ccf ) ) ) ) >0 ) ) >0 ) ) ) =0; wr3: SIZEOF( QUERY (cfo <* concept_feature_operator | (cfo.name = 'not') AND (SIZEOF(QUERY(cfrwc <* USEDIN(cfo, 'AUTOMOTIVE_DESIGN.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.' + 'CONDITIONAL_OPERATOR') | cfrwc.related_product_concept_feature :<>: cfrwc.relating_product_concept_feature)) >0 ) ) ) = 0; END_RULE; -- restrict_concept_feature_operator |
public class RRestrict_concept_feature_operator public int rWr3(SdaiContext _context) public int rWr2(SdaiContext _context) public int rWr1(SdaiContext _context) public int run(SdaiContext _context, A_string violations) |