for (ReportLineItem reportLineItem : reportData) {
final List<String> groupByValues = reportLineItem.getGroupByValues();
final String groupKey = getStringListKey(groupByValues);
if (!groups.containsKey(groupKey)) {
GroupedFieldItem newGroup = new GroupedFieldItem();
newGroup.setValues(groupByValues);
item.addGroupedFieldItem(newGroup);
groups.put(groupKey, newGroup);
}
GroupedFieldItem groupedFieldItem = groups.get(groupKey);
groupedFieldItem.addProfileData(
ReportUtils.buildProfileReportData(profile, reportLineItem));
}
if (progressObserver != null) {
progressObserver.onProgress((ProgressObserver.UNITY_PERCENT * stepCount++) / totalSteps);