From d23cd4f6f2020c2f86323dccd3267a000c8d8e73 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Thu, 8 Jun 2017 18:45:16 +0300 Subject: [PATCH] vcs: simplify stream operations --- .../vcs/changes/ui/ChangesBrowserNode.java | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesBrowserNode.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesBrowserNode.java index 4c1d28e59015..ca6ca958b1c4 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesBrowserNode.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesBrowserNode.java @@ -24,17 +24,17 @@ import com.intellij.openapi.vcs.changes.LocallyDeletedChange; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.ColoredTreeCellRenderer; import com.intellij.ui.SimpleTextAttributes; -import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.Convertor; +import one.util.streamex.StreamEx; import org.jetbrains.annotations.NotNull; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.MutableTreeNode; import javax.swing.tree.TreePath; -import java.util.*; +import java.util.Enumeration; +import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; -import java.util.stream.StreamSupport; import static com.intellij.util.FontUtil.spaceAndThinSpace; @@ -150,8 +150,7 @@ public class ChangesBrowserNode extends DefaultMutableTreeNode { public Stream getObjectsUnderStream(@NotNull Class clazz) { return toStream(preorderEnumeration()) .map(ChangesBrowserNode::getUserObject) - .filter(userObject -> clazz.isAssignableFrom(userObject.getClass())) - .map(clazz::cast); + .select(clazz); } @NotNull @@ -161,10 +160,9 @@ public class ChangesBrowserNode extends DefaultMutableTreeNode { @NotNull public Stream getFilesUnderStream() { - return toStream(breadthFirstEnumeration()) + return toStream(preorderEnumeration()) .map(ChangesBrowserNode::getUserObject) - .filter(userObject -> userObject instanceof VirtualFile) - .map(VirtualFile.class::cast) + .select(VirtualFile.class) .filter(VirtualFile::isValid); } @@ -175,20 +173,16 @@ public class ChangesBrowserNode extends DefaultMutableTreeNode { @NotNull public Stream getFilePathsUnderStream() { - return toStream(breadthFirstEnumeration()) + return toStream(preorderEnumeration()) .filter(ChangesBrowserNode::isLeaf) .map(ChangesBrowserNode::getUserObject) - .filter(userObject -> userObject instanceof FilePath) - .map(FilePath.class::cast); + .select(FilePath.class); } @NotNull - private static Stream toStream(@NotNull Enumeration enumeration) { + private static StreamEx toStream(@NotNull Enumeration enumeration) { //noinspection unchecked - Iterator iterator = ContainerUtil.iterate((Enumeration)enumeration); - Spliterator spliterator = Spliterators.spliteratorUnknownSize(iterator, Spliterator.ORDERED | Spliterator.NONNULL); - - return StreamSupport.stream(spliterator, false); + return StreamEx.of(enumeration); } public void render(@NotNull ChangesBrowserNodeRenderer renderer, boolean selected, boolean expanded, boolean hasFocus) {