private void mergeRequiredRow(Table destinationTable, Row requiredRow) { boolean thereIsAMerge = false; for (Row existingRow : destinationTable.getRows()) { if (checker.matchAllFields(requiredRow, existingRow)) { LocationUtil.mergeLocationPointers( existingRow.getLocationPointer(), requiredRow.getLocationPointer()); thereIsAMerge = true; } } if (!thereIsAMerge) { if (requiredRow.getUniqueKey() == null) { destinationTable.addRow(requiredRow); } else { mergeRequiredRowWithUniqueKey(destinationTable, requiredRow); } } }