@Override
public StatDetails stat(String id, Date from, Date to, String appGroup, String appType) {
log.debug("Searching for stat {} from {} to {}", id, getDateFormat().format(from), getDateFormat().format(to));
StatDetails result = new StatDetails(id, null);
listParts().stream()
.peek( fileInfo -> log.debug("Checking {}", fileInfo.getName()))
.filter(fileInfo -> fileInfo.inRange(from, to))
.peek( fileInfo -> log.debug("Matches: {}", fileInfo.getName()))
.forEach( fileInfo -> {
Stats stats = load(fileInfo.getName());
Stat details = stats.getMap().get(id);
result.add(details, stats.getStartDate(), stats.getEndDate());
});
if( result.getMerged() == null ){
result.setMerged(Stat.emptyStat());
}
return result;
}