RULE security_classification_date_string_restriction

(* SCHEMA technical_data_packaging; *)
  RULE security_classification_date_string_restriction FOR (
             applied_security_classification_assignment);

    LOCAL
      asca    : SET OF applied_security_classification_assignment;
      tresult : BOOLEAN;
      ada     : BAG OF applied_date_assignment;
      adta    : BAG OF applied_date_and_time_assignment;
      result  : BOOLEAN := TRUE;
    END_LOCAL;
    asca := applied_security_classification_assignment;
    REPEAT i := 1 TO SIZEOF(asca) BY 1;
      adta := USEDIN(asca[i],'TECHNICAL_DATA_PACKAGING.' + 
          'APPLIED_DATE_AND_TIME_ASSIGNMENT.ITEMS');
      tresult := FALSE;
      REPEAT j := 1 TO SIZEOF(adta) BY 1;
        REPEAT k := 1 TO SIZEOF(adta[j].items) BY 1;
          IF adta[j].items[k] = asca[i] THEN
            IF EXISTS(adta[j]\date_and_time_assignment.role) THEN
              IF adta[j]\date_and_time_assignment.role.name = 
                  'classification date' THEN
                tresult := TRUE;
              END_IF;
            END_IF;
            result := result AND tresult;
          END_IF;
        END_REPEAT;
      END_REPEAT;
      ada := USEDIN(asca[i],'TECHNICAL_DATA_PACKAGING.' + 
          'APPLIED_DATE_ASSIGNMENT.ITEMS');
      REPEAT j := 1 TO SIZEOF(ada) BY 1;
        REPEAT k := 1 TO SIZEOF(ada[j].items) BY 1;
          IF ada[j].items[k] = asca[i] THEN
            IF EXISTS(ada[j]\date_assignment.role) THEN
              IF ada[j]\date_assignment.role.name = 'classification date'
                   THEN
                tresult := TRUE;
              END_IF;
            END_IF;
            result := result AND tresult;
          END_IF;
        END_REPEAT;
      END_REPEAT;
    END_REPEAT;

  WHERE
    wr1: result;

  END_RULE; -- security_classification_date_string_restriction

[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:18:35-04:00