in codeanalyzer/src/main/java/nl/obren/sokrates/sourcecode/landscape/analysis/LandscapeAnalysisResults.java [227:278]
public List<ContributorProject> getAllContributors() {
List<ContributorProject> list = new ArrayList<>();
Map<String, ContributorProject> map = new HashMap<>();
getFilteredProjectAnalysisResults().forEach(projectAnalysisResults -> {
ContributorsAnalysisResults contributorsAnalysisResults = projectAnalysisResults.getAnalysisResults().getContributorsAnalysisResults();
contributorsAnalysisResults.getContributors().forEach(contributor -> {
String contributorId = contributor.getEmail();
int projectCommits = contributor.getCommitsCount();
int projectCommits30Days = contributor.getCommitsCount30Days();
int projectCommits90Days = contributor.getCommitsCount90Days();
if (map.containsKey(contributorId)) {
ContributorProject existingContributor = map.get(contributorId);
existingContributor.getContributor().setCommitsCount(existingContributor.getContributor().getCommitsCount() + projectCommits);
existingContributor.getContributor().setCommitsCount30Days(
existingContributor.getContributor().getCommitsCount30Days() + projectCommits30Days);
existingContributor.getContributor().setCommitsCount90Days(
existingContributor.getContributor().getCommitsCount30Days() + projectCommits90Days);
existingContributor.addProject(projectAnalysisResults, projectCommits);
if (contributor.getFirstCommitDate().compareTo(existingContributor.getContributor().getFirstCommitDate()) < 0) {
existingContributor.getContributor().setFirstCommitDate(contributor.getFirstCommitDate());
}
if (contributor.getLatestCommitDate().compareTo(existingContributor.getContributor().getLatestCommitDate()) > 0) {
existingContributor.getContributor().setLatestCommitDate(contributor.getLatestCommitDate());
}
} else {
Contributor newContributor = new Contributor();
newContributor.setEmail(contributor.getEmail());
newContributor.setCommitsCount(projectCommits);
newContributor.setCommitsCount30Days(projectCommits30Days);
newContributor.setCommitsCount90Days(projectCommits90Days);
newContributor.setFirstCommitDate(contributor.getFirstCommitDate());
newContributor.setLatestCommitDate(contributor.getLatestCommitDate());
ContributorProject newContributorWithProjects = new ContributorProject(newContributor);
newContributorWithProjects.addProject(projectAnalysisResults, projectCommits);
map.put(contributorId, newContributorWithProjects);
list.add(newContributorWithProjects);
}
});
});
Collections.sort(list, (a, b) -> b.getContributor().getCommitsCount() - a.getContributor().getCommitsCount());
return list;
}