private void mergeFields(Row row, Row requiredRow) { for (Field field : requiredRow.getFields().toFieldList()) { if (!row.containsField(field.getName())) { row.getLocalDefinedFields().put(new Field(field)); } } LocationUtil.mergeLocationPointers(row.getLocationPointer(), requiredRow.getLocationPointer()); }
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); } } }