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

        if (obj instanceof S3JsonSource == false)
            return false;
        S3JsonSource other = (S3JsonSource) obj;
        if (other.getName() == null ^ this.getName() == null)
            return false;
        if (other.getName() != null && other.getName().equals(this.getName()) == false)
            return false;
        if (other.getPaths() == null ^ this.getPaths() == null)
            return false;
        if (other.getPaths() != null && other.getPaths().equals(this.getPaths()) == false)
            return false;
        if (other.getCompressionType() == null ^ this.getCompressionType() == null)
            return false;
        if (other.getCompressionType() != null && other.getCompressionType().equals(this.getCompressionType()) == false)
            return false;
        if (other.getExclusions() == null ^ this.getExclusions() == null)
            return false;
        if (other.getExclusions() != null && other.getExclusions().equals(this.getExclusions()) == false)
            return false;
        if (other.getGroupSize() == null ^ this.getGroupSize() == null)
            return false;
        if (other.getGroupSize() != null && other.getGroupSize().equals(this.getGroupSize()) == false)
            return false;
        if (other.getGroupFiles() == null ^ this.getGroupFiles() == null)
            return false;
        if (other.getGroupFiles() != null && other.getGroupFiles().equals(this.getGroupFiles()) == false)
            return false;
        if (other.getRecurse() == null ^ this.getRecurse() == null)
            return false;
        if (other.getRecurse() != null && other.getRecurse().equals(this.getRecurse()) == false)
            return false;
        if (other.getMaxBand() == null ^ this.getMaxBand() == null)
            return false;
        if (other.getMaxBand() != null && other.getMaxBand().equals(this.getMaxBand()) == false)
            return false;
        if (other.getMaxFilesInBand() == null ^ this.getMaxFilesInBand() == null)
            return false;
        if (other.getMaxFilesInBand() != null && other.getMaxFilesInBand().equals(this.getMaxFilesInBand()) == 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.getJsonPath() == null ^ this.getJsonPath() == null)
            return false;
        if (other.getJsonPath() != null && other.getJsonPath().equals(this.getJsonPath()) == false)
            return false;
        if (other.getMultiline() == null ^ this.getMultiline() == null)
            return false;
        if (other.getMultiline() != null && other.getMultiline().equals(this.getMultiline()) == false)
            return false;
        if (other.getOutputSchemas() == null ^ this.getOutputSchemas() == null)
            return false;
        if (other.getOutputSchemas() != null && other.getOutputSchemas().equals(this.getOutputSchemas()) == 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/S3JsonSource.java