in common/src/main/java/org/apache/servicecomb/toolkit/common/MyersAlgorithm.java [35:68]
public List<Comparison> compare(String source, String dest) {
if ((source == null) || (dest == null)) {
LOGGER.error("Source is {} and dest is {}", source, dest);
throw new RuntimeException("Source and dest must not be null");
}
EditList diffList = new EditList();
diffList.addAll(MyersDiff.INSTANCE.diff(RawTextComparator.DEFAULT,
new RawText(source.getBytes()), new RawText(dest.getBytes())));
List<Comparison> comparisonList = new ArrayList<>();
diffList.stream().forEachOrdered(edit -> {
ComparisionType comparisionType;
switch (edit.getType()) {
case INSERT:
comparisionType = ComparisionType.INSERT;
break;
case DELETE:
comparisionType = ComparisionType.DELETE;
break;
case REPLACE:
comparisionType = ComparisionType.REPLACE;
break;
default:
comparisionType = ComparisionType.EQUAL;
break;
}
comparisonList
.add(new Comparison(comparisionType, edit.getBeginA(), edit.getEndA(), edit.getBeginB(), edit.getEndB()));
});
return comparisonList;
}