class SourceProviderImpl implements SourceProvider, Serializable {

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        SourceProviderImpl that = (SourceProviderImpl) o;
        return Objects.equals(name, that.name) &&
                Objects.equals(manifestFile, that.manifestFile) &&
                Objects.equals(javaDirs, that.javaDirs) &&
                Objects.equals(resourcesDirs, that.resourcesDirs) &&
                Objects.equals(aidlDirs, that.aidlDirs) &&
                Objects.equals(rsDirs, that.rsDirs) &&
                Objects.equals(cDirs, that.cDirs) &&
                Objects.equals(cppDirs, that.cppDirs) &&
                Objects.equals(resDirs, that.resDirs) &&
                Objects.equals(assetsDirs, that.assetsDirs) &&
                Objects.equals(libsDirs, that.libsDirs) &&
                Objects.equals(shaderDirs, that.shaderDirs);
    }

    public  SourceProviderImpl(@NonNull SourceProvider sourceProvider);

}