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

        if (obj instanceof IndexField == false)
            return false;
        IndexField other = (IndexField) obj;
        if (other.getIndexFieldName() == null ^ this.getIndexFieldName() == null)
            return false;
        if (other.getIndexFieldName() != null && other.getIndexFieldName().equals(this.getIndexFieldName()) == false)
            return false;
        if (other.getIndexFieldType() == null ^ this.getIndexFieldType() == null)
            return false;
        if (other.getIndexFieldType() != null && other.getIndexFieldType().equals(this.getIndexFieldType()) == false)
            return false;
        if (other.getIntOptions() == null ^ this.getIntOptions() == null)
            return false;
        if (other.getIntOptions() != null && other.getIntOptions().equals(this.getIntOptions()) == false)
            return false;
        if (other.getDoubleOptions() == null ^ this.getDoubleOptions() == null)
            return false;
        if (other.getDoubleOptions() != null && other.getDoubleOptions().equals(this.getDoubleOptions()) == false)
            return false;
        if (other.getLiteralOptions() == null ^ this.getLiteralOptions() == null)
            return false;
        if (other.getLiteralOptions() != null && other.getLiteralOptions().equals(this.getLiteralOptions()) == false)
            return false;
        if (other.getTextOptions() == null ^ this.getTextOptions() == null)
            return false;
        if (other.getTextOptions() != null && other.getTextOptions().equals(this.getTextOptions()) == false)
            return false;
        if (other.getDateOptions() == null ^ this.getDateOptions() == null)
            return false;
        if (other.getDateOptions() != null && other.getDateOptions().equals(this.getDateOptions()) == false)
            return false;
        if (other.getLatLonOptions() == null ^ this.getLatLonOptions() == null)
            return false;
        if (other.getLatLonOptions() != null && other.getLatLonOptions().equals(this.getLatLonOptions()) == false)
            return false;
        if (other.getIntArrayOptions() == null ^ this.getIntArrayOptions() == null)
            return false;
        if (other.getIntArrayOptions() != null && other.getIntArrayOptions().equals(this.getIntArrayOptions()) == false)
            return false;
        if (other.getDoubleArrayOptions() == null ^ this.getDoubleArrayOptions() == null)
            return false;
        if (other.getDoubleArrayOptions() != null && other.getDoubleArrayOptions().equals(this.getDoubleArrayOptions()) == false)
            return false;
        if (other.getLiteralArrayOptions() == null ^ this.getLiteralArrayOptions() == null)
            return false;
        if (other.getLiteralArrayOptions() != null && other.getLiteralArrayOptions().equals(this.getLiteralArrayOptions()) == false)
            return false;
        if (other.getTextArrayOptions() == null ^ this.getTextArrayOptions() == null)
            return false;
        if (other.getTextArrayOptions() != null && other.getTextArrayOptions().equals(this.getTextArrayOptions()) == false)
            return false;
        if (other.getDateArrayOptions() == null ^ this.getDateArrayOptions() == null)
            return false;
        if (other.getDateArrayOptions() != null && other.getDateArrayOptions().equals(this.getDateArrayOptions()) == 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-cloudsearch/src/main/java/com/amazonaws/services/cloudsearchv2/model/IndexField.java