void (ApplyPatchExecutor<AbstractFilePatchInProgress<?>> executor) { Collection<AbstractFilePatchInProgress<?>> included = getIncluded(); if (included.isEmpty()) { return; } MultiMap<VirtualFile, AbstractFilePatchInProgress<?>> patchGroups = new MultiMap<>(); for (AbstractFilePatchInProgress<?> patchInProgress : included) { patchGroups.putValue(patchInProgress.getBase(), patchInProgress); } LocalChangeList targetChangelist = getSelectedChangeList(); FilePresentationModel presentation = myRecentPathFileChange.get(); VirtualFile vf = presentation != null ? presentation.getVf() : null; executor.apply(getOriginalRemaining(), patchGroups, targetChangelist, vf == null ? null : vf.getName(), myReader == null ? null : myReader.getAdditionalInfo(ApplyPatchDefaultExecutor.pathsFromGroups(patchGroups))); }