Overview Schemas Index

CLASSIFICATION_WITH_ATTRIBUTES_MIM (jsdai.SClassification_with_attributes_mim)


FUNCTION class_assignment_is_valid
          (aia : applied_classification_assignment) : BOOLEAN;

LOCAL
  item: classification_item;
  role: classification_role;
END_LOCAL;

role:= aia\classification_assignment.role;
IF ('CLASSIFICATION_WITH_ATTRIBUTES_MIM.' +'CLASS_SYSTEM' IN  TYPEOF(aia\classification_assignment.assigned_class)) THEN
  IF(role\classification_role.name <> 'class system membership') THEN
    RETURN(FALSE);
  END_IF;
  REPEAT  i:=LOINDEX(aia\applied_classification_assignment.items) TO  HIINDEX(aia\applied_classification_assignment.items);
    item:= aia\applied_classification_assignment.items[i];

    IF  (SIZEOF(['CLASSIFICATION_WITH_ATTRIBUTES_MIM.' + 'CLASS_SYSTEM_ITEM'] * TYPEOF(item))=0) THEN
-- item invalid IF  item does NOT  belong TO  the types that may have a class_system
          RETURN(FALSE);
    END_IF;
  END_REPEAT;
END_IF;

IF ('CLASSIFICATION_WITH_ATTRIBUTES_MIM.' +'CHARACTERIZED_CLASS' IN  TYPEOF(aia\classification_assignment.assigned_class)) THEN
  IF          NOT(role\classification_role.name IN ['definitional','non-definitional','']) THEN
    RETURN(FALSE); 
  END_IF;


  REPEAT i:=LOINDEX(aia\applied_classification_assignment.items) TO  HIINDEX(aia\applied_classification_assignment.items);
    item:= aia\applied_classification_assignment.items[i];

    IF  (SIZEOF(['CLASSIFICATION_WITH_ATTRIBUTES_MIM.' + 'CLASSIFIED_ITEM'] * TYPEOF(item))=0) THEN
-- item invalid IF  item does NOT belong TO the types that may have a characterized_class
          RETURN(FALSE);
    END_IF;
  END_REPEAT;
END_IF;

  IF
   (role\classification_role.name = 'definitional')
   THEN
     IF NOT
      (SIZEOF(QUERY(it <* aia\applied_classification_assignment.items | NOT
             (SIZEOF(['PRODUCT_DEFINITION_SCHEMA.PRODUCT', 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION_FORMATION', 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION'] * TYPEOF(it)) = 1)
      )) = 0 )
      THEN
      RETURN(FALSE); 
     END_IF;
  END_IF;

RETURN(TRUE);

END_FUNCTION; -- class_assignment_is_valid

public class FClass_assignment_is_valid
          public static Value run(SdaiContext _context, Value aia)