public boolean equals(Complex that) {
    if (that == null)
      return false;
    if (this == that)
      return true;

    boolean this_present_aint = true;
    boolean that_present_aint = true;
    if (this_present_aint || that_present_aint) {
      if (!(this_present_aint && that_present_aint))
        return false;
      if (this.aint != that.aint)
        return false;
    }

    boolean this_present_aString = true && this.isSetAString();
    boolean that_present_aString = true && that.isSetAString();
    if (this_present_aString || that_present_aString) {
      if (!(this_present_aString && that_present_aString))
        return false;
      if (!this.aString.equals(that.aString))
        return false;
    }

    boolean this_present_lint = true && this.isSetLint();
    boolean that_present_lint = true && that.isSetLint();
    if (this_present_lint || that_present_lint) {
      if (!(this_present_lint && that_present_lint))
        return false;
      if (!this.lint.equals(that.lint))
        return false;
    }

    boolean this_present_lString = true && this.isSetLString();
    boolean that_present_lString = true && that.isSetLString();
    if (this_present_lString || that_present_lString) {
      if (!(this_present_lString && that_present_lString))
        return false;
      if (!this.lString.equals(that.lString))
        return false;
    }

    boolean this_present_lintString = true && this.isSetLintString();
    boolean that_present_lintString = true && that.isSetLintString();
    if (this_present_lintString || that_present_lintString) {
      if (!(this_present_lintString && that_present_lintString))
        return false;
      if (!this.lintString.equals(that.lintString))
        return false;
    }

    boolean this_present_mStringString = true && this.isSetMStringString();
    boolean that_present_mStringString = true && that.isSetMStringString();
    if (this_present_mStringString || that_present_mStringString) {
      if (!(this_present_mStringString && that_present_mStringString))
        return false;
      if (!this.mStringString.equals(that.mStringString))
        return false;
    }

    boolean this_present_attributes = true && this.isSetAttributes();
    boolean that_present_attributes = true && that.isSetAttributes();
    if (this_present_attributes || that_present_attributes) {
      if (!(this_present_attributes && that_present_attributes))
        return false;
      if (!this.attributes.equals(that.attributes))
        return false;
    }

    boolean this_present_unionField1 = true && this.isSetUnionField1();
    boolean that_present_unionField1 = true && that.isSetUnionField1();
    if (this_present_unionField1 || that_present_unionField1) {
      if (!(this_present_unionField1 && that_present_unionField1))
        return false;
      if (!this.unionField1.equals(that.unionField1))
        return false;
    }

    boolean this_present_unionField2 = true && this.isSetUnionField2();
    boolean that_present_unionField2 = true && that.isSetUnionField2();
    if (this_present_unionField2 || that_present_unionField2) {
      if (!(this_present_unionField2 && that_present_unionField2))
        return false;
      if (!this.unionField2.equals(that.unionField2))
        return false;
    }

    boolean this_present_unionField3 = true && this.isSetUnionField3();
    boolean that_present_unionField3 = true && that.isSetUnionField3();
    if (this_present_unionField3 || that_present_unionField3) {
      if (!(this_present_unionField3 && that_present_unionField3))
        return false;
      if (!this.unionField3.equals(that.unionField3))
        return false;
    }

    return true;
  }
Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise
serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde2/thrift/test/Complex.java