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

        if (obj instanceof SnowflakeNodeData == false)
            return false;
        SnowflakeNodeData other = (SnowflakeNodeData) obj;
        if (other.getSourceType() == null ^ this.getSourceType() == null)
            return false;
        if (other.getSourceType() != null && other.getSourceType().equals(this.getSourceType()) == false)
            return false;
        if (other.getConnection() == null ^ this.getConnection() == null)
            return false;
        if (other.getConnection() != null && other.getConnection().equals(this.getConnection()) == false)
            return false;
        if (other.getSchema() == null ^ this.getSchema() == null)
            return false;
        if (other.getSchema() != null && other.getSchema().equals(this.getSchema()) == false)
            return false;
        if (other.getTable() == null ^ this.getTable() == null)
            return false;
        if (other.getTable() != null && other.getTable().equals(this.getTable()) == false)
            return false;
        if (other.getDatabase() == null ^ this.getDatabase() == null)
            return false;
        if (other.getDatabase() != null && other.getDatabase().equals(this.getDatabase()) == false)
            return false;
        if (other.getTempDir() == null ^ this.getTempDir() == null)
            return false;
        if (other.getTempDir() != null && other.getTempDir().equals(this.getTempDir()) == false)
            return false;
        if (other.getIamRole() == null ^ this.getIamRole() == null)
            return false;
        if (other.getIamRole() != null && other.getIamRole().equals(this.getIamRole()) == false)
            return false;
        if (other.getAdditionalOptions() == null ^ this.getAdditionalOptions() == null)
            return false;
        if (other.getAdditionalOptions() != null && other.getAdditionalOptions().equals(this.getAdditionalOptions()) == false)
            return false;
        if (other.getSampleQuery() == null ^ this.getSampleQuery() == null)
            return false;
        if (other.getSampleQuery() != null && other.getSampleQuery().equals(this.getSampleQuery()) == false)
            return false;
        if (other.getPreAction() == null ^ this.getPreAction() == null)
            return false;
        if (other.getPreAction() != null && other.getPreAction().equals(this.getPreAction()) == false)
            return false;
        if (other.getPostAction() == null ^ this.getPostAction() == null)
            return false;
        if (other.getPostAction() != null && other.getPostAction().equals(this.getPostAction()) == false)
            return false;
        if (other.getAction() == null ^ this.getAction() == null)
            return false;
        if (other.getAction() != null && other.getAction().equals(this.getAction()) == false)
            return false;
        if (other.getUpsert() == null ^ this.getUpsert() == null)
            return false;
        if (other.getUpsert() != null && other.getUpsert().equals(this.getUpsert()) == false)
            return false;
        if (other.getMergeAction() == null ^ this.getMergeAction() == null)
            return false;
        if (other.getMergeAction() != null && other.getMergeAction().equals(this.getMergeAction()) == false)
            return false;
        if (other.getMergeWhenMatched() == null ^ this.getMergeWhenMatched() == null)
            return false;
        if (other.getMergeWhenMatched() != null && other.getMergeWhenMatched().equals(this.getMergeWhenMatched()) == false)
            return false;
        if (other.getMergeWhenNotMatched() == null ^ this.getMergeWhenNotMatched() == null)
            return false;
        if (other.getMergeWhenNotMatched() != null && other.getMergeWhenNotMatched().equals(this.getMergeWhenNotMatched()) == false)
            return false;
        if (other.getMergeClause() == null ^ this.getMergeClause() == null)
            return false;
        if (other.getMergeClause() != null && other.getMergeClause().equals(this.getMergeClause()) == false)
            return false;
        if (other.getStagingTable() == null ^ this.getStagingTable() == null)
            return false;
        if (other.getStagingTable() != null && other.getStagingTable().equals(this.getStagingTable()) == false)
            return false;
        if (other.getSelectedColumns() == null ^ this.getSelectedColumns() == null)
            return false;
        if (other.getSelectedColumns() != null && other.getSelectedColumns().equals(this.getSelectedColumns()) == false)
            return false;
        if (other.getAutoPushdown() == null ^ this.getAutoPushdown() == null)
            return false;
        if (other.getAutoPushdown() != null && other.getAutoPushdown().equals(this.getAutoPushdown()) == false)
            return false;
        if (other.getTableSchema() == null ^ this.getTableSchema() == null)
            return false;
        if (other.getTableSchema() != null && other.getTableSchema().equals(this.getTableSchema()) == 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-glue/src/main/java/com/amazonaws/services/glue/model/SnowflakeNodeData.java