List groups = getGroupList();
StatisticsSnapshot snapshot;
if (groups == null) {
snapshot = gatherer.getStatisticsSnapshot(this);
} else {
StatisticsGatherer combined = new StatisticsGatherer(gatherer);
for (int i = 0; i < groups.size(); i++) {
Group group = (Group) groups.get(i);
StatisticsSnapshot nested = group.getStatisticsSnapshot();
combined.addSnapshot(nested);
}
snapshot = combined.getStatisticsSnapshot(this);
}
return snapshot;
}