[vcs-log] move util stuff into VcsLogFileFilter

This commit is contained in:
Julia Beliaeva
2014-12-05 18:58:02 +03:00
parent 73b1782947
commit 0633c42007
4 changed files with 23 additions and 45 deletions
@@ -21,6 +21,7 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.HashSet;
import com.intellij.util.containers.MultiMap;
import com.intellij.vcs.log.VcsLogFilter;
import com.intellij.vcs.log.VcsLogRootFilter;
import com.intellij.vcs.log.VcsLogStructureFilter;
import org.jetbrains.annotations.NotNull;
@@ -29,7 +30,15 @@ import org.jetbrains.annotations.Nullable;
import java.util.Collection;
import java.util.Set;
public class VcsLogFileFilterUtil {
public class VcsLogFileFilter implements VcsLogFilter {
@Nullable private final VcsLogStructureFilter myStructureFilter;
@Nullable private final VcsLogRootFilter myRootFilter;
public VcsLogFileFilter(@Nullable VcsLogStructureFilter structureFilter, @Nullable VcsLogRootFilter rootFilter) {
myStructureFilter = structureFilter;
myRootFilter = rootFilter;
}
@NotNull
static Pair<Set<VirtualFile>, MultiMap<VirtualFile, VirtualFile>> collectRoots(@NotNull Collection<VirtualFile> files,
@NotNull Set<VirtualFile> roots) {
@@ -88,4 +97,14 @@ public class VcsLogFileFilterUtil {
Pair<Set<VirtualFile>, MultiMap<VirtualFile, VirtualFile>> rootsAndFiles = collectRootsAndFiles(roots, rootFilter, structureFilter);
return ContainerUtil.union(rootsAndFiles.first, rootsAndFiles.second.keySet());
}
@Nullable
public VcsLogStructureFilter getStructureFilter() {
return myStructureFilter;
}
@Nullable
public VcsLogRootFilter getRootFilter() {
return myRootFilter;
}
}
@@ -188,7 +188,7 @@ class VisiblePackBuilder {
private Set<Integer> getMatchingHeads(@NotNull VcsLogRefs refs,
@NotNull Set<VirtualFile> vcsRoots,
@NotNull VcsLogStructureFilter filter) {
Pair<Set<VirtualFile>, MultiMap<VirtualFile, VirtualFile>> roots = VcsLogFileFilterUtil.collectRoots(filter.getFiles(), vcsRoots);
Pair<Set<VirtualFile>, MultiMap<VirtualFile, VirtualFile>> roots = VcsLogFileFilter.collectRoots(filter.getFiles(), vcsRoots);
return getMatchingHeads(refs, ContainerUtil.union(roots.first, roots.second.keySet()));
}
@@ -257,7 +257,7 @@ class VisiblePackBuilder {
VcsLogStructureFilter structureFilter = filterCollection.getStructureFilter();
Pair<Set<VirtualFile>, MultiMap<VirtualFile, VirtualFile>> selectedRootsAndFiles =
VcsLogFileFilterUtil.collectRootsAndFiles(providers.keySet(), rootFilter, structureFilter);
VcsLogFileFilter.collectRootsAndFiles(providers.keySet(), rootFilter, structureFilter);
Collection<List<TimedVcsCommit>> logs = ContainerUtil.newArrayList();
for (Map.Entry<VirtualFile, VcsLogProvider> entry : providers.entrySet()) {
@@ -287,7 +287,7 @@ public class VcsLogClassicFilterUi implements VcsLogFilterUi {
if (filter == null) {
myVisibleRoots = null;
} else {
myVisibleRoots = VcsLogFileFilterUtil.collectRoots(roots, filter.getRootFilter(), filter.getStructureFilter());
myVisibleRoots = VcsLogFileFilter.collectRoots(roots, filter.getRootFilter(), filter.getStructureFilter());
}
}
@@ -1,41 +0,0 @@
/*
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.vcs.log.ui.filter;
import com.intellij.vcs.log.VcsLogFilter;
import com.intellij.vcs.log.VcsLogRootFilter;
import com.intellij.vcs.log.VcsLogStructureFilter;
import org.jetbrains.annotations.Nullable;
public class VcsLogFileFilter implements VcsLogFilter {
@Nullable private final VcsLogStructureFilter myStructureFilter;
@Nullable private final VcsLogRootFilter myRootFilter;
public VcsLogFileFilter(@Nullable VcsLogStructureFilter structureFilter, @Nullable VcsLogRootFilter rootFilter) {
myStructureFilter = structureFilter;
myRootFilter = rootFilter;
}
@Nullable
public VcsLogStructureFilter getStructureFilter() {
return myStructureFilter;
}
@Nullable
public VcsLogRootFilter getRootFilter() {
return myRootFilter;
}
}