Overview Schemas Index

AUTOMOTIVE_DESIGN (jsdai.SAutomotive_design)


RULE restrict_product_definitions_for_product_definition_relationship FOR (assembly_component_usage, product_definition_relationship);

WHERE
          wr1: SIZEOF ( QUERY ( pdr <* product_definition_relationship |
     ( pdr. name = 'definition usage' ) AND ( ( pdr.
     relating_product_definition.frame_of_reference. name<>
     'part definition' ) OR ( pdr.
     related_product_definition.frame_of_reference. name<>
     'part occurrence' ) ) ) ) =0;
          wr2: SIZEOF ( QUERY ( pdr <* product_definition_relationship |
     ( pdr. name IN [ 'geometrical relationship' ,
     'definition replacement' ] ) AND ( ( pdr.
     relating_product_definition.frame_of_reference. name<>
     'part definition' ) OR ( pdr.
     related_product_definition.frame_of_reference. name<>
     'part definition' ) ) ) ) =0;
          wr3: SIZEOF ( QUERY ( pdr <* product_definition_relationship |
     ( 'AUTOMOTIVE_DESIGN.'+ 'ASSEMBLY_COMPONENT_USAGE' IN
     TYPEOF ( pdr ) ) AND  ( ( pdr.
     relating_product_definition.frame_of_reference. name<>
     'part definition' ) OR  ( pdr.
     related_product_definition.frame_of_reference. name<>
     'part definition' ) ) AND ( ( pdr.
     relating_product_definition.frame_of_reference. name<>
     'physical occurrence' ) OR ( pdr.
     related_product_definition.frame_of_reference. name<>
     'physical occurrence' ) ) ) ) =0;
          wr4: SIZEOF ( QUERY ( pdr <* product_definition_relationship |
     ( 'AUTOMOTIVE_DESIGN.'+ 'ASSEMBLY_COMPONENT_USAGE' IN
     TYPEOF ( pdr ) ) AND  ( pdr. name =
     'selected instance usage' ) AND ( ( pdr.
     relating_product_definition.frame_of_reference. name<>
     'part definition' ) OR ( pdr.
     related_product_definition.frame_of_reference. name<>
     'part definition' ) ) ) ) =0;
          wr5: SIZEOF ( QUERY ( pdr <* product_definition_relationship |
     ( pdr. name = 'physical realization' ) AND ( ( pdr.
     relating_product_definition.frame_of_reference. name<>
     'part definition' ) OR ( pdr.
     related_product_definition.frame_of_reference. name<>
     'physical occurrence' ) ) ) ) =0;
          wr6: SIZEOF ( QUERY ( pdr <* product_definition_relationship |
     ( pdr. name = 'physical occurrence usage' ) AND ( NOT (
     'AUTOMOTIVE_DESIGN.'+ 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF
     ( pdr ) ) OR  ( pdr.
     relating_product_definition.frame_of_reference. name<>
     'physical occurrence' ) OR ( pdr.
     related_product_definition.frame_of_reference. name<>
     'physical occurrence' ) ) ) ) =0;
          wr7: SIZEOF ( QUERY ( pdr <* product_definition_relationship |
     ( pdr. name = 'solution alternative definition' ) AND ( NOT
     ( pdr. relating_product_definition.frame_of_reference. name
     IN [ 'alternative definition' , 'functional definition' ,
     'conceptual definition' ] ) OR ( pdr.
     related_product_definition.frame_of_reference. name<>
     'alternative definition' ) ) ) ) =0;
          wr8: SIZEOF ( QUERY  ( pdr <* product_definition_relationship |
     ( pdr. name = 'collection membership' ) AND  ( ( pdr.
     relating_product_definition.frame_of_reference. name<>
     'part definition' ) OR  ( pdr.
     related_product_definition.frame_of_reference. name<>
     'part occurrence' ) OR ( SIZEOF ( QUERY ( pdca <* USEDIN (
     pdr. relating_product_definition ,
     'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION'
     ) | ( pdca. role.name = 'part definition type' ) AND (
     pdca. frame_of_reference.name = 'collection definition' ) )
     ) =0 ) ) ) ) =0;
          wr9: SIZEOF ( QUERY ( pdr <* product_definition_relationship |
     ( pdr. name = 'design constraint association' ) AND ( (
     pdr. relating_product_definition.frame_of_reference. name<>
     'design constraint definition' ) OR NOT ( pdr.
     related_product_definition.frame_of_reference. name IN [
     'alternative definition' , 'functional definition' ,
     'conceptual definition' ] ) ) ) ) =0;
          wr10: SIZEOF ( QUERY ( pdr <* product_definition_relationship |
     ( pdr. name = 'final specification' ) AND ( NOT  ( pdr.
     relating_product_definition.name IN  ['final' ,
     'technical final' , 'supplier final' ,
     'technical supplier final' ] ) OR  ( pdr.
     relating_product_definition.frame_of_reference. name<>
     'alternative definition' )  OR NOT ( pdr.
     related_product_definition.frame_of_reference.name IN [ 'part definition' ,
     'physical occurrence' ] ) ) ) ) =0;
END_RULE; -- restrict_product_definitions_for_product_definition_relationship

public class RRestrict_product_definitions_for_product_definition_relationship
          public int rWr10(SdaiContext _context)
          public int rWr9(SdaiContext _context)
          public int rWr8(SdaiContext _context)
          public int rWr7(SdaiContext _context)
          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)