public void merge(final RecordStatResponse responseToMerge) { // MERGE VALUES totalCount += responseToMerge.getTotalCount(); final Map<String, Integer> groupedCountToMerge = responseToMerge.getGroupedCount(); for (final String toMergeKey : groupedCountToMerge.keySet()) { final Integer toMergeValue = groupedCountToMerge.get(toMergeKey); if (groupedCount.containsKey(toMergeKey)) { // merge new final Integer oldValue = groupedCount.get(toMergeKey); groupedCount.put(toMergeKey, oldValue + toMergeValue); } else { // insert new groupedCount.put(toMergeKey, toMergeValue); } } // MERGE ERRORS if (getError() == null && responseToMerge.getError() != null) { // set first encountered error setError(responseToMerge.getError()); } }