RULE restrict_representation_for_document_size_property FOR (representation, representation_item); LOCAL document_size_representations: SET OF representation := []; END_LOCAL; document_size_representations := QUERY( r <* representation | (r.name ='document size')); WHERE wr1: SIZEOF ( QUERY ( r <* document_size_representations | ( ( SIZEOF ( r.items ) <1 ) OR (SIZEOF ( r.items ) >2 ) ) ) ) =0; wr2: SIZEOF ( QUERY ( ri <* representation_item | ( SIZEOF ( QUERY ( r <* USEDIN ( ri ,'CATALOG_DATA_INFORMATION_MIM' + '.REPRESENTATION.ITEMS' ) | r.name ='document size' ) ) >0 ) AND NOT ( ri. name IN ['file size' , 'page count' ] ) ) ) =0; wr3: SIZEOF ( QUERY ( r <* document_size_representations| ( SIZEOF ( QUERY ( i <* r.items | (i.name = 'file size' ) AND ( SIZEOF ( ['CATALOG_DATA_INFORMATION_MIM' + '.MEASURE_REPRESENTATION_ITEM' , 'CATALOG_DATA_INFORMATION_MIM' + '.VALUE_RANGE' , 'CATALOG_DATA_INFORMATION_MIM' + '.VALUE_REPRESENTATION_ITEM']* TYPEOF ( i ) ) =1 ) ) ) >1 ) ) ) =0; wr4: SIZEOF ( QUERY ( r <* document_size_representations | ( SIZEOF ( QUERY ( i <* r.items | ( i.name = 'page count' ) AND ( SIZEOF ( ['CATALOG_DATA_INFORMATION_MIM' + '.MEASURE_REPRESENTATION_ITEM' , 'CATALOG_DATA_INFORMATION_MIM' + '.VALUE_RANGE' , 'CATALOG_DATA_INFORMATION_MIM' + '.VALUE_REPRESENTATION_ITEM']* TYPEOF ( i ) ) =1 ) ) ) >1 )) ) =0; END_RULE; -- restrict_representation_for_document_size_property |
public class RRestrict_representation_for_document_size_property 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) |