List<Change> () { List<MergedStatusInfo<VcsFileStatusInfo>> statuses = getMergedStatusInfo(); List<Change> changes = myParser.apply(ContainerUtil.map(statuses, MergedStatusInfo::getStatusInfo), 0); if (changes.size() != statuses.size()) { LOG.error("Incorrectly parsed statuses " + statuses + " to changes " + changes); } if (getParents().size() <= 1) return changes; // each merge change knows about all changes to parents List<Change> wrappedChanges = new ArrayList<>(statuses.size()); for (int i = 0; i < statuses.size(); i++) { wrappedChanges.add(new MyMergedChange(changes.get(i), statuses.get(i), myParser)); } return wrappedChanges; }