public static @NotNull List<Difference> getDifferencesBetween(@Nullable Entry left,
                                                                @Nullable Entry right,
                                                                boolean isRightContentCurrent) {
    List<Difference> result = new SmartList<>();
    BiConsumer<Entry, Entry> consumer = (leftEntry, rightEntry) -> {
      result.add(new Difference(leftEntry, rightEntry, isRightContentCurrent));
    };

    if (left != null && right != null) {
      left.collectDifferencesWith(right, consumer);
    }
    else if (right != null) {
      right.collectCreatedDifferences(consumer);
    }
    else if (left != null) {
      left.collectDeletedDifferences(consumer);
    }
    return result;
  }
public static @NotNull List<Difference> getDifferencesBetween(@Nullable Entry left,
                                                                @Nullable Entry right,
                                                                boolean isRightContentCurrent)