/**
   * @see
   *     org.kuali.core.rule.DocumentAuditRule#processRunAuditBusinessRules(org.kuali.core.document.Document)
   */
  public boolean processRunAuditBusinessRules(Document document) {
    boolean isValid = true;
    ProtocolDocumentBase protocolDocument = (ProtocolDocumentBase) document;
    auditErrors = new ArrayList<AuditError>();
    isValid =
        getProtocolPersonnelService()
            .isValidStudentFacultyMatch(protocolDocument.getProtocol().getProtocolPersons());

    if (!isValid) {
      for (Integer errorIndex :
          getProtocolPersonnelService()
              .getAffiliationStudentMap(protocolDocument.getProtocol().getProtocolPersons())) {
        addErrorToAuditErrors(errorIndex.intValue());
      }
    }
    reportAndCreateAuditCluster();

    return isValid;
  }