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;
}