From 5a226f80d887c55e91b2d7bf7e0f0a3442e64768 Mon Sep 17 00:00:00 2001 From: Konstantin Kolosovsky Date: Thu, 1 Sep 2016 15:14:37 +0300 Subject: [PATCH] vcs: Replaced "CollectionSplitter" usages with "JBIterable.partition()" Marked "CollectionSplitter" as deprecated. --- .../openapi/vcs/CollectionSplitter.java | 30 ++++++++----------- .../changes/dbCommitted/VcsSqliteLayer.java | 9 ++++-- .../idea/svn/dialogs/BasePageEngine.java | 10 +++---- 3 files changed, 24 insertions(+), 25 deletions(-) diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/CollectionSplitter.java b/platform/vcs-api/src/com/intellij/openapi/vcs/CollectionSplitter.java index a02f4dc14eb7..0611ddb59c94 100644 --- a/platform/vcs-api/src/com/intellij/openapi/vcs/CollectionSplitter.java +++ b/platform/vcs-api/src/com/intellij/openapi/vcs/CollectionSplitter.java @@ -1,7 +1,16 @@ package com.intellij.openapi.vcs; -import java.util.*; +import com.intellij.util.containers.JBIterable; +import org.jetbrains.annotations.NotNull; +import java.util.Collection; +import java.util.List; + +/** + * @deprecated Use {@link JBIterable#from(Iterable)} and {@link JBIterable#partition(int, boolean)} directly. + */ +@SuppressWarnings("unused") // Required for compatibility with external plugins. +@Deprecated public class CollectionSplitter { private final int myBunchSize; @@ -9,21 +18,8 @@ public class CollectionSplitter { myBunchSize = bunchSize; } - public List> split(final Collection in) { - if (in.size() <= myBunchSize) return Collections.>singletonList(new ArrayList<>(in)); - - final List> result = new LinkedList<>(); - List piece = new LinkedList<>(); - for (T path : in) { - if (myBunchSize == piece.size()) { - result.add(piece); - piece = new LinkedList<>(); - } - piece.add(path); - } - if (! piece.isEmpty()) { - result.add(piece); - } - return result; + @NotNull + public List> split(@NotNull Collection in) { + return JBIterable.from(in).partition(myBunchSize, false).toList(); } } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/dbCommitted/VcsSqliteLayer.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/dbCommitted/VcsSqliteLayer.java index 9d35ea0866e8..ad60a1df59b2 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/dbCommitted/VcsSqliteLayer.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/dbCommitted/VcsSqliteLayer.java @@ -20,7 +20,10 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.util.io.BufferExposingByteArrayOutputStream; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.vcs.*; +import com.intellij.openapi.vcs.AbstractVcs; +import com.intellij.openapi.vcs.CachingCommittedChangesProvider; +import com.intellij.openapi.vcs.RepositoryLocation; +import com.intellij.openapi.vcs.VcsException; import com.intellij.openapi.vcs.changes.Change; import com.intellij.openapi.vcs.changes.ContentRevision; import com.intellij.openapi.vcs.changes.committed.ReceivedChangeList; @@ -28,6 +31,7 @@ import com.intellij.openapi.vcs.versionBrowser.CommittedChangeList; import com.intellij.util.ThrowableConsumer; import com.intellij.util.ThrowableConvertor; import com.intellij.util.ThrowableRunnable; +import com.intellij.util.containers.JBIterable; import com.intellij.util.containers.MultiMap; import com.intellij.util.io.DataOutputStream; import org.jetbrains.annotations.NotNull; @@ -297,9 +301,8 @@ public class VcsSqliteLayer { final RevisionId lastRevData = myKnownRepositoryLocations.getLastRevision(locationId); final Long lastRevision = lastRevData == null ? null : lastRevData.getNumber(); - final List> split = new CollectionSplitter(20).split(lists); final Map knowPaths = new HashMap<>(); - for (List changeLists : split) { + for (List changeLists : JBIterable.from(lists).partition(20, false)) { final Set names = new HashSet<>(); final Set paths = new HashSet<>(); for (Iterator iterator = changeLists.iterator(); iterator.hasNext(); ) { diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/BasePageEngine.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/BasePageEngine.java index 838d0e0dd36a..27ff729d0f83 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/BasePageEngine.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/BasePageEngine.java @@ -15,17 +15,17 @@ */ package org.jetbrains.idea.svn.dialogs; -import com.intellij.openapi.vcs.CollectionSplitter; +import com.intellij.util.containers.JBIterable; +import org.jetbrains.annotations.NotNull; import java.util.List; public class BasePageEngine implements PageEngine> { - private List> mySplitData; + @NotNull private final List> mySplitData; private int myIdx; - public BasePageEngine(final List data, final int pageSize) { - final CollectionSplitter splitter = new CollectionSplitter<>(pageSize); - mySplitData = splitter.split(data); + public BasePageEngine(@NotNull List data, int pageSize) { + mySplitData = JBIterable.from(data).partition(pageSize, false).toList(); myIdx = 0; }