@Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;

        if (obj instanceof AssessmentEvidenceFolder == false)
            return false;
        AssessmentEvidenceFolder other = (AssessmentEvidenceFolder) obj;
        if (other.getName() == null ^ this.getName() == null)
            return false;
        if (other.getName() != null && other.getName().equals(this.getName()) == false)
            return false;
        if (other.getDate() == null ^ this.getDate() == null)
            return false;
        if (other.getDate() != null && other.getDate().equals(this.getDate()) == false)
            return false;
        if (other.getAssessmentId() == null ^ this.getAssessmentId() == null)
            return false;
        if (other.getAssessmentId() != null && other.getAssessmentId().equals(this.getAssessmentId()) == false)
            return false;
        if (other.getControlSetId() == null ^ this.getControlSetId() == null)
            return false;
        if (other.getControlSetId() != null && other.getControlSetId().equals(this.getControlSetId()) == false)
            return false;
        if (other.getControlId() == null ^ this.getControlId() == null)
            return false;
        if (other.getControlId() != null && other.getControlId().equals(this.getControlId()) == false)
            return false;
        if (other.getId() == null ^ this.getId() == null)
            return false;
        if (other.getId() != null && other.getId().equals(this.getId()) == false)
            return false;
        if (other.getDataSource() == null ^ this.getDataSource() == null)
            return false;
        if (other.getDataSource() != null && other.getDataSource().equals(this.getDataSource()) == false)
            return false;
        if (other.getAuthor() == null ^ this.getAuthor() == null)
            return false;
        if (other.getAuthor() != null && other.getAuthor().equals(this.getAuthor()) == false)
            return false;
        if (other.getTotalEvidence() == null ^ this.getTotalEvidence() == null)
            return false;
        if (other.getTotalEvidence() != null && other.getTotalEvidence().equals(this.getTotalEvidence()) == false)
            return false;
        if (other.getAssessmentReportSelectionCount() == null ^ this.getAssessmentReportSelectionCount() == null)
            return false;
        if (other.getAssessmentReportSelectionCount() != null
                && other.getAssessmentReportSelectionCount().equals(this.getAssessmentReportSelectionCount()) == false)
            return false;
        if (other.getControlName() == null ^ this.getControlName() == null)
            return false;
        if (other.getControlName() != null && other.getControlName().equals(this.getControlName()) == false)
            return false;
        if (other.getEvidenceResourcesIncludedCount() == null ^ this.getEvidenceResourcesIncludedCount() == null)
            return false;
        if (other.getEvidenceResourcesIncludedCount() != null
                && other.getEvidenceResourcesIncludedCount().equals(this.getEvidenceResourcesIncludedCount()) == false)
            return false;
        if (other.getEvidenceByTypeConfigurationDataCount() == null ^ this.getEvidenceByTypeConfigurationDataCount() == null)
            return false;
        if (other.getEvidenceByTypeConfigurationDataCount() != null
                && other.getEvidenceByTypeConfigurationDataCount().equals(this.getEvidenceByTypeConfigurationDataCount()) == false)
            return false;
        if (other.getEvidenceByTypeManualCount() == null ^ this.getEvidenceByTypeManualCount() == null)
            return false;
        if (other.getEvidenceByTypeManualCount() != null && other.getEvidenceByTypeManualCount().equals(this.getEvidenceByTypeManualCount()) == false)
            return false;
        if (other.getEvidenceByTypeComplianceCheckCount() == null ^ this.getEvidenceByTypeComplianceCheckCount() == null)
            return false;
        if (other.getEvidenceByTypeComplianceCheckCount() != null
                && other.getEvidenceByTypeComplianceCheckCount().equals(this.getEvidenceByTypeComplianceCheckCount()) == false)
            return false;
        if (other.getEvidenceByTypeComplianceCheckIssuesCount() == null ^ this.getEvidenceByTypeComplianceCheckIssuesCount() == null)
            return false;
        if (other.getEvidenceByTypeComplianceCheckIssuesCount() != null
                && other.getEvidenceByTypeComplianceCheckIssuesCount().equals(this.getEvidenceByTypeComplianceCheckIssuesCount()) == false)
            return false;
        if (other.getEvidenceByTypeUserActivityCount() == null ^ this.getEvidenceByTypeUserActivityCount() == null)
            return false;
        if (other.getEvidenceByTypeUserActivityCount() != null
                && other.getEvidenceByTypeUserActivityCount().equals(this.getEvidenceByTypeUserActivityCount()) == false)
            return false;
        if (other.getEvidenceAwsServiceSourceCount() == null ^ this.getEvidenceAwsServiceSourceCount() == null)
            return false;
        if (other.getEvidenceAwsServiceSourceCount() != null
                && other.getEvidenceAwsServiceSourceCount().equals(this.getEvidenceAwsServiceSourceCount()) == false)
            return false;
        return true;
    }
Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
redacted from this string using a placeholder value.

@return A string representation of this object.

@see java.lang.Object#toString()
aws-java-sdk-auditmanager/src/main/java/com/amazonaws/services/auditmanager/model/AssessmentEvidenceFolder.java