/// <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);
     }
 }