class Builder implements Serializable {

    public IncrementalBuildResults addResource(final Path resource) {
        IncrementalBuildResults results = new IncrementalBuildResults(projectGAV);
        // This validation prevents faulty update resource operation that may come during save and rename operation
        // For more information see https://github.com/kiegroup/kie-wb-common/pull/3277
        if (ioService.exists(resource)) {
            results = addResource(resource,
                                  ioService.newInputStream(resource));
        }

        return results;
    }

    public  Builder(final Module project,
                   final IOService ioService,
                   final KieModuleService moduleService,
                   final ProjectImportsService importsService,
                   final List<BuildValidationHelper> buildValidationHelpers,
                   final LRUModuleDependenciesClassLoaderCache dependenciesClassLoaderCache,
                   final LRUPomModelCache pomModelCache,
                   final PackageNameWhiteListService packageNameWhiteListService,
                   final Predicate<String> classFilter,
                   final KieBuilder kieBuilder,
                   final KieFileSystem kieFileSystem);
    public  Builder(final Module project,
                   final IOService ioService,
                   final KieModuleService moduleService,
                   final ProjectImportsService importsService,
                   final List<BuildValidationHelper> buildValidationHelpers,
                   final LRUModuleDependenciesClassLoaderCache dependenciesClassLoaderCache,
                   final LRUPomModelCache pomModelCache,
                   final PackageNameWhiteListService packageNameWhiteListService,
                   final Predicate<String> classFilter);

}