in codeanalyzer/src/main/java/nl/obren/sokrates/sourcecode/landscape/analysis/LandscapeAnalysisResults.java [177:224]
public List<CommitsPerExtension> getContributorsPerExtension() {
int thresholdCommits = configuration.getContributorThresholdCommits();
Map<String, CommitsPerExtension> commitsPerExtensions = new HashMap<>();
getAllExtension().forEach(extension -> {
commitsPerExtensions.put(extension, new CommitsPerExtension(extension));
});
getFilteredProjectAnalysisResults().forEach(projectAnalysisResults -> {
List<CommitsPerExtension> projectData = projectAnalysisResults.getAnalysisResults().getContributorsAnalysisResults().getCommitsPerExtensions();
projectData.forEach(projectExtData -> {
String extension = projectExtData.getExtension();
if (commitsPerExtensions.containsKey(extension)) {
CommitsPerExtension commitsPerExtension = commitsPerExtensions.get(extension);
commitsPerExtension.setCommitsCount(commitsPerExtension.getCommitsCount() + projectExtData.getCommitsCount());
commitsPerExtension.setCommitsCount30Days(commitsPerExtension.getCommitsCount30Days() + projectExtData.getCommitsCount30Days());
commitsPerExtension.setCommitsCount90Days(commitsPerExtension.getCommitsCount90Days() + projectExtData.getCommitsCount90Days());
commitsPerExtension.setFilesCount(commitsPerExtension.getFilesCount() + projectExtData.getFilesCount());
commitsPerExtension.setFilesCount30Days(commitsPerExtension.getFilesCount30Days() + projectExtData.getFilesCount30Days());
commitsPerExtension.setFilesCount90Days(commitsPerExtension.getFilesCount90Days() + projectExtData.getFilesCount90Days());
projectExtData.getCommitters().forEach(email -> {
if (!commitsPerExtension.getCommitters().contains(email)) {
commitsPerExtension.getCommitters().add(email);
}
});
projectExtData.getCommitters30Days().forEach(email -> {
if (!commitsPerExtension.getCommitters30Days().contains(email)) {
commitsPerExtension.getCommitters30Days().add(email);
}
});
projectExtData.getCommitters90Days().forEach(email -> {
if (!commitsPerExtension.getCommitters90Days().contains(email)) {
commitsPerExtension.getCommitters90Days().add(email);
}
});
}
});
});
ArrayList<CommitsPerExtension> list = new ArrayList<>(commitsPerExtensions.values());
Collections.sort(list, (a, b) -> b.getCommitters30Days().size() - a.getCommitters30Days().size());
return list;
}