RULE restrict_effectivity_usage FOR (effectivity); LOCAL other_effectivities : SET OF effectivity ; END_LOCAL; other_effectivities := QUERY( e <* effectivity | (SIZEOF(['CATALOG_DATA_INFORMATION_MIM' + '.DATED_EFFECTIVITY', 'CATALOG_DATA_INFORMATION_MIM' + '.TIME_INTERVAL_BASED_EFFECTIVITY'] * TYPEOF(e)) = 0)); WHERE wr1: SIZEOF( QUERY( e <* other_effectivities | ( (SIZEOF( QUERY( er <* USEDIN(e,'CATALOG_DATA_INFORMATION_MIM' + '.EFFECTIVITY_RELATIONSHIP.' + 'RELATED_EFFECTIVITY') | er.name = 'inheritance' )) = 0) OR ((e.id = 'configuration validity') AND (SIZEOF( QUERY ( cea <* USEDIN(e,'CATALOG_DATA_INFORMATION_MIM' + '.EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY') | 'CATALOG_DATA_INFORMATION_MIM' + '.CONFIGURED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF ( cea) ) ) = 0)) OR ((e.id = 'class usage') AND (SIZEOF( QUERY( aea <* USEDIN(e,'CATALOG_DATA_INFORMATION_MIM' + '.EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY') | ('CATALOG_DATA_INFORMATION_MIM' + '.APPLIED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF ( aea ) ) AND (SIZEOF( QUERY( i <* aea.items | 'CATALOG_DATA_INFORMATION_MIM' + '.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i) )) > 0) )) = 0))) )) = 0; END_RULE; -- restrict_effectivity_usage |
public class RRestrict_effectivity_usage public int rWr1(SdaiContext _context) public int run(SdaiContext _context, A_string violations) |