in codeanalyzer/src/main/java/nl/obren/sokrates/sourcecode/analysis/files/FileHistoryAnalyzer.java [62:106]
private void summarize(List<FileModificationHistory> history) {
FileHistoryComponentsHelper helper = new FileHistoryComponentsHelper();
List<String> uniqueDates = helper.getUniqueDates(history);
if (uniqueDates.size() > 1) {
String firstDateString = uniqueDates.get(0);
String latestDateString = uniqueDates.get(uniqueDates.size() - 1);
Date firstDate = FileHistoryUtils.getDateFromString(firstDateString);
Date latestDate = FileHistoryUtils.getDateFromString(latestDateString);
int daysBetween = FileHistoryUtils.daysBetween(firstDate, latestDate);
Date today = new Date();
int totalAge = FileHistoryUtils.daysBetween(firstDate, today);
int weeks = daysBetween / 7;
int estimatedWorkingDays = weeks * 5;
int activeDays = uniqueDates.size();
analysisResults.setFirstDate(firstDateString);
analysisResults.setLatestDate(latestDateString);
analysisResults.setAgeInDays(totalAge);
analysisResults.setDaysBetweenFirstAndLastDate(daysBetween);
analysisResults.setWeeks(weeks);
analysisResults.setEstimatedWorkindDays(estimatedWorkingDays);
analysisResults.setActiveDays(activeDays);
metricsList.addMetric().id("FILE_CHANGE_HISTORY_TOTAL_AGE_DAYS")
.description("The age of the project in days")
.value(totalAge);
metricsList.addMetric().id("FILE_CHANGE_HISTORY_ACTIVE_DAYS")
.description("The number of daty with at least one file change")
.value(activeDays);
metricsList.addMetric().id("FILE_CHANGE_HISTORY_WEEKS")
.description("The number of weeks")
.value(weeks);
metricsList.addMetric().id("FILE_CHANGE_HISTORY_ESTIMATED_WORKING_DAYS")
.description("The number of estimated working days in the period")
.value(estimatedWorkingDays);
}
}