@Override public List<CompilationModellingResult> compileFolders(final List<String> foldersPaths, final CompilationHelper compilationHelper) { List<CompilationModellingResult> results = new ArrayList<>(); try { Set<SlangSource> dependencySources = getSourcesFromFolders(foldersPaths); for (SlangSource dependencySource : dependencySources) { File file = getFile(dependencySource.getFilePath()); compilationHelper.onEveryFile(file); try { CompilationModellingResult result = slang.compileSource(dependencySource, dependencySources, PrecompileStrategy.WITH_CACHE); result.setFile(file); results.add(result); } catch (Exception e) { logger.error("Failed compilation for file : " + file.getName() + " ,Exception is : " + e.getMessage()); } } } finally { compilationHelper.onCompilationFinish(); slang.invalidateAllInPreCompileCache(); } return results; }