diff --git a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/CollapsedGraph.java b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/CollapsedGraph.java index 6475170e6815..9cc09f884298 100644 --- a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/CollapsedGraph.java +++ b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/CollapsedGraph.java @@ -103,8 +103,8 @@ public class CollapsedGraph { private static final int APPLYING = 1; private static final int DONE = 2; - @NotNull private final EdgeStorageAdapter myEdgesToAdd = EdgeStorageAdapter.createSimpleEdgeStorage(); - @NotNull private final EdgeStorageAdapter myEdgesToRemove = EdgeStorageAdapter.createSimpleEdgeStorage(); + @NotNull private final EdgeStorageWrapper myEdgesToAdd = EdgeStorageWrapper.createSimpleEdgeStorage(); + @NotNull private final EdgeStorageWrapper myEdgesToRemove = EdgeStorageWrapper.createSimpleEdgeStorage(); @NotNull private final TIntHashSet myNodesToHide = new TIntHashSet(); @NotNull private final TIntHashSet myNodesToShow = new TIntHashSet(); private boolean myClearEdges = false; @@ -170,7 +170,7 @@ public class CollapsedGraph { // "package private" means "I'm not entirely happy about this method" @NotNull - /*package private*/ EdgeStorageAdapter getEdgesToAdd() { + /*package private*/ EdgeStorageWrapper getEdgesToAdd() { assert myProgress == COLLECTING; return myEdgesToAdd; } @@ -201,12 +201,12 @@ public class CollapsedGraph { myDelegateNodesVisibility.hide(toHide.next()); } - EdgeStorageAdapter edgeStorageAdapter = new EdgeStorageAdapter(myEdgeStorage, getDelegatedGraph()); + EdgeStorageWrapper edgeStorageWrapper = new EdgeStorageWrapper(myEdgeStorage, getDelegatedGraph()); for (GraphEdge edge : myEdgesToAdd.getEdges()) { - edgeStorageAdapter.createEdge(edge); + edgeStorageWrapper.createEdge(edge); } for (GraphEdge edge : myEdgesToRemove.getEdges()) { - edgeStorageAdapter.removeEdge(edge); + edgeStorageWrapper.removeEdge(edge); } if (minAffectedNodeIndex != Integer.MAX_VALUE && maxAffectedNodeIndex != Integer.MIN_VALUE) { @@ -226,10 +226,10 @@ public class CollapsedGraph { } private class CompiledGraph implements LinearGraph { - @NotNull private final EdgeStorageAdapter myEdgeStorageAdapter; + @NotNull private final EdgeStorageWrapper myEdgeStorageWrapper; private CompiledGraph() { - myEdgeStorageAdapter = new EdgeStorageAdapter(myEdgeStorage, this); + myEdgeStorageWrapper = new EdgeStorageWrapper(myEdgeStorage, this); } @Override @@ -274,7 +274,7 @@ public class CollapsedGraph { if (isVisibleEdge(compiledUpIndex, compiledDownIndex)) result.add(createEdge(delegateEdge, compiledUpIndex, compiledDownIndex)); } - result.addAll(myEdgeStorageAdapter.getAdditionalEdges(nodeIndex, filter)); + result.addAll(myEdgeStorageWrapper.getAdjacentEdges(nodeIndex, filter)); return result; } diff --git a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/DottedFilterEdgesGenerator.java b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/DottedFilterEdgesGenerator.java index 9dd20acef1e1..3fdd27bbaeee 100644 --- a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/DottedFilterEdgesGenerator.java +++ b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/DottedFilterEdgesGenerator.java @@ -68,7 +68,7 @@ public class DottedFilterEdgesGenerator { } private boolean hasDottedEdges(int nodeIndex, boolean toUp) { - for (GraphEdge edge : myModification.getEdgesToAdd().getAdditionalEdges(nodeIndex, EdgeFilter.NORMAL_ALL)) { + for (GraphEdge edge : myModification.getEdgesToAdd().getAdjacentEdges(nodeIndex, EdgeFilter.NORMAL_ALL)) { if (edge.getType() == DOTTED) { if (toUp && LinearGraphUtils.isEdgeToUp(edge, nodeIndex)) return true; if (!toUp && LinearGraphUtils.isEdgeToDown(edge, nodeIndex)) return false; diff --git a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/EdgeStorage.java b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/EdgeStorage.java index 82e01116f2d3..4be3809357fe 100644 --- a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/EdgeStorage.java +++ b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/EdgeStorage.java @@ -22,7 +22,6 @@ import com.intellij.vcs.log.graph.api.elements.GraphEdgeType; import com.intellij.vcs.log.graph.utils.IntIntMultiMap; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.annotations.TestOnly; import java.util.List; @@ -37,7 +36,7 @@ public class EdgeStorage { public static final int NULL_ID = MIN_NODE_ID; - @NotNull private final IntIntMultiMap myAdditionEdges = new IntIntMultiMap(); + @NotNull private final IntIntMultiMap myEdges = new IntIntMultiMap(); public EdgeStorage() { assert GraphEdgeType.values().length <= MAX_EDGE_TYPE_COUNT; @@ -45,26 +44,26 @@ public class EdgeStorage { public void createEdge(int mainNodeId, int additionId, GraphEdgeType edgeType) { if (edgeType.isNormalEdge()) { - myAdditionEdges.putValue(mainNodeId, compressEdge(additionId, edgeType)); - myAdditionEdges.putValue(additionId, compressEdge(mainNodeId, edgeType)); + myEdges.putValue(mainNodeId, compressEdge(additionId, edgeType)); + myEdges.putValue(additionId, compressEdge(mainNodeId, edgeType)); } else { - myAdditionEdges.putValue(mainNodeId, compressEdge(additionId, edgeType)); + myEdges.putValue(mainNodeId, compressEdge(additionId, edgeType)); } } public void removeEdge(int mainNodeId, int additionId, GraphEdgeType edgeType) { if (edgeType.isNormalEdge()) { - myAdditionEdges.remove(mainNodeId, compressEdge(additionId, edgeType)); - myAdditionEdges.remove(additionId, compressEdge(mainNodeId, edgeType)); + myEdges.remove(mainNodeId, compressEdge(additionId, edgeType)); + myEdges.remove(additionId, compressEdge(mainNodeId, edgeType)); } else { - myAdditionEdges.remove(mainNodeId, compressEdge(additionId, edgeType)); + myEdges.remove(mainNodeId, compressEdge(additionId, edgeType)); } } public List> getEdges(int nodeId) { - return ContainerUtil.map(myAdditionEdges.get(nodeId), new Function>() { + return ContainerUtil.map(myEdges.get(nodeId), new Function>() { @Override public Pair fun(Integer compressEdge) { return Pair.create(convertToInteger(retrievedNodeId(compressEdge)), retrievedType(compressEdge)); @@ -73,7 +72,7 @@ public class EdgeStorage { } public int[] getKnownIds() { - return myAdditionEdges.keys(); + return myEdges.keys(); } @Nullable @@ -98,7 +97,7 @@ public class EdgeStorage { } public void removeAll() { - myAdditionEdges.clear(); + myEdges.clear(); } } diff --git a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/EdgeStorageAdapter.java b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/EdgeStorageWrapper.java similarity index 91% rename from platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/EdgeStorageAdapter.java rename to platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/EdgeStorageWrapper.java index 4d2a863d7519..6808365672cd 100644 --- a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/EdgeStorageAdapter.java +++ b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/EdgeStorageWrapper.java @@ -27,18 +27,17 @@ import com.intellij.vcs.log.graph.utils.LinearGraphUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.HashSet; import java.util.List; import java.util.Set; import static com.intellij.vcs.log.graph.utils.LinearGraphUtils.intEqual; -public class EdgeStorageAdapter { +public class EdgeStorageWrapper { @NotNull private final EdgeStorage myEdgeStorage; @NotNull private final Function myGetNodeIndexById; @NotNull private final Function myGetNodeIdByIndex; - public EdgeStorageAdapter(@NotNull EdgeStorage edgeStorage, @NotNull final LinearGraph graph) { + public EdgeStorageWrapper(@NotNull EdgeStorage edgeStorage, @NotNull final LinearGraph graph) { this(edgeStorage, new Function() { @Override public Integer fun(Integer nodeId) { @@ -52,7 +51,7 @@ public class EdgeStorageAdapter { }); } - public EdgeStorageAdapter(@NotNull EdgeStorage edgeStorage, + public EdgeStorageWrapper(@NotNull EdgeStorage edgeStorage, @NotNull Function getNodeIndexById, @NotNull Function getNodeIdByIndex) { myEdgeStorage = edgeStorage; @@ -79,7 +78,7 @@ public class EdgeStorageAdapter { } @NotNull - public List getAdditionalEdges(int nodeIndex, @NotNull EdgeFilter filter) { + public List getAdjacentEdges(int nodeIndex, @NotNull EdgeFilter filter) { List result = ContainerUtil.newSmartList(); for (Pair retrievedEdge : myEdgeStorage.getEdges(myGetNodeIdByIndex.fun(nodeIndex))) { GraphEdge edge = decompressEdge(nodeIndex, retrievedEdge.first, retrievedEdge.second); @@ -92,7 +91,7 @@ public class EdgeStorageAdapter { public Set getEdges() { Set result = ContainerUtil.newHashSet(); for (int id : myEdgeStorage.getKnownIds()) { - result.addAll(getAdditionalEdges(myGetNodeIndexById.fun(id), EdgeFilter.ALL)); + result.addAll(getAdjacentEdges(myGetNodeIndexById.fun(id), EdgeFilter.ALL)); } return result; } @@ -141,7 +140,7 @@ public class EdgeStorageAdapter { return value == null ? EdgeStorage.NULL_ID : value; } - public static EdgeStorageAdapter createSimpleEdgeStorage() { - return new EdgeStorageAdapter(new EdgeStorage(), new Function.Self(), new Function.Self()); + public static EdgeStorageWrapper createSimpleEdgeStorage() { + return new EdgeStorageWrapper(new EdgeStorage(), new Function.Self(), new Function.Self()); } } diff --git a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekGraph.java b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekGraph.java index 89d23c8efdd9..87962b8a8bd6 100644 --- a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekGraph.java +++ b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekGraph.java @@ -22,7 +22,7 @@ import com.intellij.vcs.log.graph.api.LinearGraph; import com.intellij.vcs.log.graph.api.elements.GraphEdge; import com.intellij.vcs.log.graph.api.elements.GraphEdgeType; import com.intellij.vcs.log.graph.api.elements.GraphNode; -import com.intellij.vcs.log.graph.collapsing.EdgeStorageAdapter; +import com.intellij.vcs.log.graph.collapsing.EdgeStorageWrapper; import com.intellij.vcs.log.graph.utils.LinearGraphUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -31,10 +31,10 @@ import java.util.*; public class LinearBekGraph implements LinearGraph { @NotNull protected final LinearGraph myGraph; - @NotNull protected final EdgeStorageAdapter myHiddenEdges; - @NotNull protected final EdgeStorageAdapter myDottedEdges; + @NotNull protected final EdgeStorageWrapper myHiddenEdges; + @NotNull protected final EdgeStorageWrapper myDottedEdges; - public LinearBekGraph(@NotNull LinearGraph graph, @NotNull EdgeStorageAdapter hiddenEdges, @NotNull EdgeStorageAdapter dottedEdges) { + public LinearBekGraph(@NotNull LinearGraph graph, @NotNull EdgeStorageWrapper hiddenEdges, @NotNull EdgeStorageWrapper dottedEdges) { myGraph = graph; myHiddenEdges = hiddenEdges; myDottedEdges = dottedEdges; @@ -50,8 +50,8 @@ public class LinearBekGraph implements LinearGraph { public List getAdjacentEdges(int nodeIndex, @NotNull EdgeFilter filter) { List result = new ArrayList(); result.addAll(myGraph.getAdjacentEdges(nodeIndex, filter)); - result.removeAll(myHiddenEdges.getAdditionalEdges(nodeIndex, filter)); - result.addAll(myDottedEdges.getAdditionalEdges(nodeIndex, filter)); + result.removeAll(myHiddenEdges.getAdjacentEdges(nodeIndex, filter)); + result.addAll(myDottedEdges.getAdjacentEdges(nodeIndex, filter)); Collections.sort(result, new Comparator() { @Override @@ -98,7 +98,7 @@ public class LinearBekGraph implements LinearGraph { myHiddenEdges.removeEdge(edge); } - List hiddenDotted = myHiddenEdges.getAdditionalEdges(tail, EdgeFilter.ALL); + List hiddenDotted = myHiddenEdges.getAdjacentEdges(tail, EdgeFilter.ALL); List downDottedEdges = ContainerUtil.filter(hiddenDotted, new Condition() { @Override diff --git a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekGraphBuilder.java b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekGraphBuilder.java index 1824ba835228..e665ca4564a9 100644 --- a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekGraphBuilder.java +++ b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekGraphBuilder.java @@ -22,7 +22,7 @@ import com.intellij.vcs.log.graph.api.GraphLayout; import com.intellij.vcs.log.graph.api.LinearGraph; import com.intellij.vcs.log.graph.api.elements.GraphEdge; import com.intellij.vcs.log.graph.api.elements.GraphEdgeType; -import com.intellij.vcs.log.graph.collapsing.EdgeStorageAdapter; +import com.intellij.vcs.log.graph.collapsing.EdgeStorageWrapper; import com.intellij.vcs.log.graph.utils.LinearGraphUtils; import com.intellij.vcs.log.graph.utils.TimestampGetter; import org.jetbrains.annotations.NotNull; @@ -178,7 +178,7 @@ class LinearBekGraphBuilder { private final List myDottedToHide = new ArrayList(); private WorkingGraph(LinearGraph graph) { - super(graph, EdgeStorageAdapter.createSimpleEdgeStorage(), EdgeStorageAdapter.createSimpleEdgeStorage()); + super(graph, EdgeStorageWrapper.createSimpleEdgeStorage(), EdgeStorageWrapper.createSimpleEdgeStorage()); } public void addEdge(int up, int down) { diff --git a/platform/vcs-log/graph/test/com/intellij/vcs/log/graph/impl/EdgeStorageTest.kt b/platform/vcs-log/graph/test/com/intellij/vcs/log/graph/impl/EdgeStorageTest.kt index 5cd96ab6203b..09626e5561c0 100644 --- a/platform/vcs-log/graph/test/com/intellij/vcs/log/graph/impl/EdgeStorageTest.kt +++ b/platform/vcs-log/graph/test/com/intellij/vcs/log/graph/impl/EdgeStorageTest.kt @@ -27,7 +27,7 @@ import com.intellij.vcs.log.graph.api.elements.GraphEdge import com.intellij.vcs.log.graph.asString import com.intellij.vcs.log.graph.api.LinearGraph import com.intellij.vcs.log.graph.api.EdgeFilter -import com.intellij.vcs.log.graph.collapsing.EdgeStorageAdapter +import com.intellij.vcs.log.graph.collapsing.EdgeStorageWrapper public class EdgeStorageTest : BaseTestGraphBuilder { val nodeIdByIndex: (Int) -> Int = { it - 10 } @@ -52,10 +52,10 @@ public class EdgeStorageTest : BaseTestGraphBuilder { fun EdgeStorage.assert(s: String) = assertEquals(s, asString()) fun EdgeStorage.asString(): String = getKnownIds().sortR().map { - adapter.getAdditionalEdges(nodeIndexById(it), EdgeFilter.ALL).map { it.asString() }.joinToString(",") + adapter.getAdjacentEdges(nodeIndexById(it), EdgeFilter.ALL).map { it.asString() }.joinToString(",") }.joinToString("|-") - val EdgeStorage.adapter: EdgeStorageAdapter get() = EdgeStorageAdapter(this, nodeIndexById, nodeIdByIndex) + val EdgeStorage.adapter: EdgeStorageWrapper get() = EdgeStorageWrapper(this, nodeIndexById, nodeIdByIndex) Test fun simple() = create() + (1 to 2) assert "11:12:n_U|-11:12:n_U" Test fun dotted() = create() + (1 to 3.dot) assert "11:13:n_D|-11:13:n_D"