@Override
  protected boolean processCustomSaveDocumentBusinessRules(Document document) {
    if (!(document instanceof IdentityManagementGroupDocument)) {
      return false;
    }

    IdentityManagementGroupDocument groupDoc = (IdentityManagementGroupDocument) document;

    boolean valid = true;
    GlobalVariables.getMessageMap().addToErrorPath(KRADConstants.DOCUMENT_PROPERTY_NAME);
    valid &= validAssignGroup(groupDoc);
    valid &= validDuplicateGroupName(groupDoc);
    getDictionaryValidationService()
        .validateDocumentAndUpdatableReferencesRecursively(
            document, getMaxDictionaryValidationDepth(), true, false);
    valid &= validateGroupQualifier(groupDoc.getQualifiers(), groupDoc.getKimType());
    valid &= validGroupMemberActiveDates(groupDoc.getMembers());
    // KULRICE-6858 Validate group members are in identity system
    valid &= validGroupMemberPrincipalIDs(groupDoc.getMembers());
    GlobalVariables.getMessageMap().removeFromErrorPath(KRADConstants.DOCUMENT_PROPERTY_NAME);

    return valid;
  }