in src/main/java/com/epam/eco/commons/diff/DiffCalculator.java [60:93]
public static Diff calculate(
String originalId,
List<String> originalLines,
String revisionId,
List<String> revisionLines) {
if (originalLines != null) {
Validate.notNull(originalId, "Original id can't be null when original lines is specified");
} else {
originalLines = Collections.emptyList();
}
if (revisionLines != null) {
Validate.notNull(revisionId, "Revision id can't be null when revision lines is specified");
} else {
revisionLines = Collections.emptyList();
}
Validate.isTrue(originalId != null || revisionId != null, "Origin id or revision id can't be null");
String effectiveOriginalId = originalId;
String effectiveRevisionId = revisionId;
Patch patch = DiffUtils.diff(originalLines, revisionLines);
if (StringUtils.equals(originalId, revisionId)) {
effectiveOriginalId = originalId + DEFAULT_ORIGINAL_POSTFIX;
effectiveRevisionId = revisionId + DEFAULT_REVISION_POSTFIX;
}
List<String> diff = DiffUtils.generateUnifiedDiff(
effectiveOriginalId == null ? DEFAULT_ID_STRING : effectiveOriginalId,
effectiveRevisionId == null ? DEFAULT_ID_STRING : effectiveRevisionId,
originalLines,
patch,
DIFF_CONTEXT_SIZE);
return new Diff(originalId, revisionId, diff);
}