in codeanalyzer/src/main/java/nl/obren/sokrates/sourcecode/dependencies/DependenciesFinderExtractor.java [96:135]
private void addDependency(List<ComponentDependency> dependencies, Map<String, ComponentDependency> dependenciesMap, SourceFile sourceFile, String toComponent, String line) {
if (StringUtils.isBlank(toComponent)) {
return;
}
if (!logicalDecomposition.isIncludeExternalComponents() && logicalDecomposition.getComponentByName(toComponent) == null) {
return;
}
if (isInDuplicatedDependecies(sourceFile, toComponent)) return;
ComponentDependency componentDependency = new ComponentDependency();
String group = logicalDecomposition.getName();
List<NamedSourceCodeAspect> logicalComponents = sourceFile.getLogicalComponents(group);
if (logicalComponents.size() == 0) {
return;
}
NamedSourceCodeAspect firstAspect = logicalComponents.get(0);
String fromComponent = firstAspect.getName();
componentDependency.setFromComponent(fromComponent);
componentDependency.setToComponent(toComponent);
addFileDepedency(sourceFile, fromComponent, toComponent, line, firstAspect);
if (!componentDependency.getFromComponent().equalsIgnoreCase(componentDependency.getToComponent())) {
String key = componentDependency.getDependencyString();
if (dependenciesMap.containsKey(key)) {
componentDependency = dependenciesMap.get(key);
componentDependency.setCount(componentDependency.getCount() + 1);
} else {
dependencies.add(componentDependency);
dependenciesMap.put(key, componentDependency);
}
componentDependency.setLocFrom(componentDependency.getLocFrom() + sourceFile.getLinesOfCode());
componentDependency.getEvidence().add(new DependencyEvidence(sourceFile.getRelativePath(), line));
}
}