public List getSourceFiles()

in codeanalyzer/src/main/java/nl/obren/sokrates/sourcecode/SourceCodeFiles.java [57:99]


    public List<SourceFile> getSourceFiles(NamedSourceCodeAspect aspect, List<SourceFile> scopeSourceFiles) {
        progressFeedback.start();
        progressFeedback.setDetailedText("Updating \"" + aspect.getName() + "\"...");
        aspect.getSourceFiles().clear();

        List<SourceFile> sourceFiles = new ArrayList<>();

        int fileIndex[] = {0};
        scopeSourceFiles.forEach(sourceFile -> {
            if (progressFeedback.canceled()) {
                return;
            }
            boolean included[] = {false};
            boolean excluded[] = {false};
            if (aspect.getFiles().contains(sourceFile.getRelativePath())) {
                included[0] = true;
            }
            aspect.getSourceFileFilters().forEach(filter -> {
                if (progressFeedback.canceled()) {
                    return;
                }
                if (filter.matches(sourceFile)) {
                    if (!filter.getException()) {
                        included[0] = true;
                    } else {
                        excluded[0] = true;
                    }
                }
                progressFeedback.progress(++fileIndex[0], allFiles.size());
            });
            if (included[0] && !excluded[0]) {
                if (!sourceFiles.contains(sourceFile)) {
                    sourceFiles.add(sourceFile);
                }
                if (!aspect.getSourceFiles().contains(sourceFile)) {
                    aspect.getSourceFiles().add(sourceFile);
                }
            }
        });
        progressFeedback.end();

        return sourceFiles;
    }