public DependenciesAnalysis extractDependencies()

in codeanalyzer/src/main/java/nl/obren/sokrates/sourcecode/dependencies/HeuristicDependenciesExtractor.java [17:45]


    public DependenciesAnalysis extractDependencies(List<SourceFile> files, ProgressFeedback progressFeedback) {
        DependenciesAnalysis dependenciesAnalysis = new DependenciesAnalysis();
        List<Dependency> dependencies = new ArrayList<>();
        dependenciesAnalysis.setDependencies(dependencies);
        List<DependencyAnchor> anchors = getDependencyAnchors(files);

        // DependencyUtils.findErrors(anchors, dependenciesAnalysis.getErrors());

        int i = 0;
        for (DependencyAnchor sourceAnchor : anchors) {
            if (progressFeedback.canceled()) {
                break;
            }
            progressFeedback.setText(sourceAnchor.getAnchor());
            for (DependencyAnchor targetAnchor : anchors) {
                if (sourceAnchor != targetAnchor) {
                    sourceAnchor.getSourceFiles().forEach(sourceFile -> {
                        extractDependenciesToTargetAnchor(dependencies, sourceFile, sourceAnchor, targetAnchor);
                    });
                }
            }
            progressFeedback.progress(i++, anchors.size());
            if (progressFeedback instanceof DependencyProgressFeedback) {
                ((DependencyProgressFeedback) progressFeedback).setCurrentDependencies(dependencies);
            }
        }

        return dependenciesAnalysis;
    }