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

    if (obj instanceof ValidateTemplateResult == false) return false;
    ValidateTemplateResult other = (ValidateTemplateResult) obj;
    if (other.getParameters() == null ^ this.getParameters() == null) return false;
    if (other.getParameters() != null
        && other.getParameters().equals(this.getParameters()) == false) return false;
    if (other.getDescription() == null ^ this.getDescription() == null) return false;
    if (other.getDescription() != null
        && other.getDescription().equals(this.getDescription()) == false) return false;
    if (other.getCapabilities() == null ^ this.getCapabilities() == null) return false;
    if (other.getCapabilities() != null
        && other.getCapabilities().equals(this.getCapabilities()) == false) return false;
    if (other.getCapabilitiesReason() == null ^ this.getCapabilitiesReason() == null) return false;
    if (other.getCapabilitiesReason() != null
        && other.getCapabilitiesReason().equals(this.getCapabilitiesReason()) == false)
      return false;
    return true;
  }