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 String computeErrorMessage( Row requiredRow, List<Row> incompatibleRows, String initialErrorMessage) { StringBuilder stringBuilder = new StringBuilder() .append(initialErrorMessage) .append("\n") .append("\n") .append("ligne required :\n"); requiredRow.getLocationPointer().accept(new LoggerLocationVisitor(stringBuilder)); stringBuilder.append("\n").append("ligne(s) en conflit :\n"); for (Row incompatibleRow : incompatibleRows) { incompatibleRow.getLocationPointer().accept(new LoggerLocationVisitor(stringBuilder)); } return stringBuilder.toString(); }
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); } } }