/// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (PathDescField != null)
         {
             hashCode = hashCode * 59 + PathDescField.GetHashCode();
         }
         if (PathChildField != null)
         {
             hashCode = hashCode * 59 + PathChildField.GetHashCode();
         }
         if (PathParentField != null)
         {
             hashCode = hashCode * 59 + PathParentField.GetHashCode();
         }
         if (PathExactField != null)
         {
             hashCode = hashCode * 59 + PathExactField.GetHashCode();
         }
         if (CatchAllField != null)
         {
             hashCode = hashCode * 59 + CatchAllField.GetHashCode();
         }
         if (CollapsedPathField != null)
         {
             hashCode = hashCode * 59 + CollapsedPathField.GetHashCode();
         }
         if (PathDepthField != null)
         {
             hashCode = hashCode * 59 + PathDepthField.GetHashCode();
         }
         if (CommitPolicy != null)
         {
             hashCode = hashCode * 59 + CommitPolicy.GetHashCode();
         }
         if (Rows != null)
         {
             hashCode = hashCode * 59 + Rows.GetHashCode();
         }
         if (PathRestrictions != null)
         {
             hashCode = hashCode * 59 + PathRestrictions.GetHashCode();
         }
         if (PropertyRestrictions != null)
         {
             hashCode = hashCode * 59 + PropertyRestrictions.GetHashCode();
         }
         if (PrimarytypesRestrictions != null)
         {
             hashCode = hashCode * 59 + PrimarytypesRestrictions.GetHashCode();
         }
         if (IgnoredProperties != null)
         {
             hashCode = hashCode * 59 + IgnoredProperties.GetHashCode();
         }
         if (UsedProperties != null)
         {
             hashCode = hashCode * 59 + UsedProperties.GetHashCode();
         }
         if (TypeMappings != null)
         {
             hashCode = hashCode * 59 + TypeMappings.GetHashCode();
         }
         if (PropertyMappings != null)
         {
             hashCode = hashCode * 59 + PropertyMappings.GetHashCode();
         }
         if (CollapseJcrcontentNodes != null)
         {
             hashCode = hashCode * 59 + CollapseJcrcontentNodes.GetHashCode();
         }
         return(hashCode);
     }
 }
        /// <summary>
        /// Returns true if OrgApacheJackrabbitOakPluginsIndexSolrOsgiOakSolrConfigurationProperties instances are equal
        /// </summary>
        /// <param name="other">Instance of OrgApacheJackrabbitOakPluginsIndexSolrOsgiOakSolrConfigurationProperties to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(OrgApacheJackrabbitOakPluginsIndexSolrOsgiOakSolrConfigurationProperties other)
        {
            if (other is null)
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     PathDescField == other.PathDescField ||
                     PathDescField != null &&
                     PathDescField.Equals(other.PathDescField)
                     ) &&
                 (
                     PathChildField == other.PathChildField ||
                     PathChildField != null &&
                     PathChildField.Equals(other.PathChildField)
                 ) &&
                 (
                     PathParentField == other.PathParentField ||
                     PathParentField != null &&
                     PathParentField.Equals(other.PathParentField)
                 ) &&
                 (
                     PathExactField == other.PathExactField ||
                     PathExactField != null &&
                     PathExactField.Equals(other.PathExactField)
                 ) &&
                 (
                     CatchAllField == other.CatchAllField ||
                     CatchAllField != null &&
                     CatchAllField.Equals(other.CatchAllField)
                 ) &&
                 (
                     CollapsedPathField == other.CollapsedPathField ||
                     CollapsedPathField != null &&
                     CollapsedPathField.Equals(other.CollapsedPathField)
                 ) &&
                 (
                     PathDepthField == other.PathDepthField ||
                     PathDepthField != null &&
                     PathDepthField.Equals(other.PathDepthField)
                 ) &&
                 (
                     CommitPolicy == other.CommitPolicy ||
                     CommitPolicy != null &&
                     CommitPolicy.Equals(other.CommitPolicy)
                 ) &&
                 (
                     Rows == other.Rows ||
                     Rows != null &&
                     Rows.Equals(other.Rows)
                 ) &&
                 (
                     PathRestrictions == other.PathRestrictions ||
                     PathRestrictions != null &&
                     PathRestrictions.Equals(other.PathRestrictions)
                 ) &&
                 (
                     PropertyRestrictions == other.PropertyRestrictions ||
                     PropertyRestrictions != null &&
                     PropertyRestrictions.Equals(other.PropertyRestrictions)
                 ) &&
                 (
                     PrimarytypesRestrictions == other.PrimarytypesRestrictions ||
                     PrimarytypesRestrictions != null &&
                     PrimarytypesRestrictions.Equals(other.PrimarytypesRestrictions)
                 ) &&
                 (
                     IgnoredProperties == other.IgnoredProperties ||
                     IgnoredProperties != null &&
                     IgnoredProperties.Equals(other.IgnoredProperties)
                 ) &&
                 (
                     UsedProperties == other.UsedProperties ||
                     UsedProperties != null &&
                     UsedProperties.Equals(other.UsedProperties)
                 ) &&
                 (
                     TypeMappings == other.TypeMappings ||
                     TypeMappings != null &&
                     TypeMappings.Equals(other.TypeMappings)
                 ) &&
                 (
                     PropertyMappings == other.PropertyMappings ||
                     PropertyMappings != null &&
                     PropertyMappings.Equals(other.PropertyMappings)
                 ) &&
                 (
                     CollapseJcrcontentNodes == other.CollapseJcrcontentNodes ||
                     CollapseJcrcontentNodes != null &&
                     CollapseJcrcontentNodes.Equals(other.CollapseJcrcontentNodes)
                 ));
        }