List<CommittedChangeList> (@NotNull List<? extends CommittedChangeList> changeLists) { if ((!myFilterAlien.mySelected) && (!myFilterNotMerged.mySelected) && (!myFilterMerged.mySelected)) { return new ArrayList<>(changeLists); } final List<CommittedChangeList> result = new ArrayList<>(); for (CommittedChangeList list : changeLists) { final ListMergeStatus status = getStatus(list, true); if (ListMergeStatus.REFRESHING.equals(status)) { result.add(list); } else if ((status == null) || ListMergeStatus.ALIEN.equals(status)) { if (!myFilterAlien.mySelected) { result.add(list); } } else if (ListMergeStatus.MERGED.equals(status) || ListMergeStatus.COMMON.equals(status)) { if (!myFilterMerged.mySelected) { result.add(list); } } else { // not merged if (!myFilterNotMerged.mySelected) { result.add(list); } } } return result; }