From 11e70e2f247a926c30dd42ef8d72061e37df15f4 Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Sun, 1 Feb 2015 04:12:33 +0300 Subject: [PATCH] [vcs-log] create default implementation for changes --- .../log/graph/impl/facade/GraphChanges.java | 86 ++++++++++++++++++- .../graph/linearBek/LinearBekController.java | 62 ++----------- 2 files changed, 94 insertions(+), 54 deletions(-) diff --git a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/impl/facade/GraphChanges.java b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/impl/facade/GraphChanges.java index 8e339732cee3..e2089151eae5 100644 --- a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/impl/facade/GraphChanges.java +++ b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/impl/facade/GraphChanges.java @@ -41,8 +41,92 @@ public interface GraphChanges { @Nullable NodeId downNodeId(); @Nullable - NodeId additionInfo(); + NodeId targetId(); boolean removed(); } + + class NodeImpl implements Node { + @NotNull private final NodeId myNodeId; + private final boolean myRemoved; + + public NodeImpl(@NotNull NodeId nodeId, boolean removed) { + myNodeId = nodeId; + myRemoved = removed; + } + + @NotNull + @Override + public NodeId getNodeId() { + return myNodeId; + } + + @Override + public boolean removed() { + return myRemoved; + } + } + + class EdgeImpl implements Edge { + @Nullable private final NodeId myUpNodeId; + @Nullable private final NodeId myDownNodeId; + @Nullable private final NodeId myTargetId; + private final boolean myRemoved; + + public EdgeImpl(@Nullable NodeId upNodeId, @Nullable NodeId downNodeId, @Nullable NodeId targetId, boolean removed) { + myUpNodeId = upNodeId; + myDownNodeId = downNodeId; + myTargetId = targetId; + myRemoved = removed; + } + + public EdgeImpl(NodeId upNodeId, NodeId downNodeId, boolean removed) { + this(upNodeId, downNodeId, null, removed); + } + + @Nullable + @Override + public NodeId upNodeId() { + return myUpNodeId; + } + + @Nullable + @Override + public NodeId downNodeId() { + return myDownNodeId; + } + + @Nullable + @Override + public NodeId targetId() { + return myTargetId; + } + + @Override + public boolean removed() { + return myRemoved; + } + } + + class GraphChangesImpl implements GraphChanges { + private final Collection> myChangedNodes; + private final Collection> myChangedEdges; + + public GraphChangesImpl(Collection> changedNodes, Collection> changedEdges) { + myChangedNodes = changedNodes; + myChangedEdges = changedEdges; + } + + @NotNull + @Override + public Collection> getChangedNodes() { + return myChangedNodes; + } + + @NotNull + @Override + public Collection> getChangedEdges() { + return myChangedEdges; + } + } } diff --git a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekController.java b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekController.java index 8333739ceaf5..9d91ff58d2d4 100644 --- a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekController.java +++ b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekController.java @@ -68,8 +68,9 @@ public class LinearBekController extends CascadeLinearGraphController { if (graphElement instanceof GraphEdge) { GraphEdge edge = (GraphEdge)graphElement; if (edge.getType() == GraphEdgeType.DOTTED) { - return new LinearGraphAnswer(calculateChanges(edge, myCompiledGraph.expandEdge(edge), - getDelegateLinearGraphController().getCompiledGraph()), null, null, null); + return new LinearGraphAnswer( + calculateChanges(edge, myCompiledGraph.expandEdge(edge), getDelegateLinearGraphController().getCompiledGraph()), null, null, + null); } } } @@ -148,60 +149,15 @@ public class LinearBekController extends CascadeLinearGraphController { private static GraphChanges calculateChanges(GraphEdge expanded, Collection addedEdges, LinearGraph delegateGraph) { final Set> edgeChanges = ContainerUtil.newHashSet(); - edgeChanges.add(new ChangedEdge(delegateGraph.getNodeId(expanded.getUpNodeIndex()), delegateGraph.getNodeId(expanded.getDownNodeIndex()), true)); + edgeChanges.add(new GraphChanges.EdgeImpl(delegateGraph.getNodeId(expanded.getUpNodeIndex()), + delegateGraph.getNodeId(expanded.getDownNodeIndex()), null, true)); for (GraphEdge edge : addedEdges) { - edgeChanges.add(new ChangedEdge(delegateGraph.getNodeId(edge.getUpNodeIndex()), delegateGraph.getNodeId(edge.getDownNodeIndex()), false)); + edgeChanges.add( + new GraphChanges.EdgeImpl(delegateGraph.getNodeId(edge.getUpNodeIndex()), delegateGraph.getNodeId(edge.getDownNodeIndex()), + false)); } - return new GraphChanges() { - @NotNull - @Override - public Collection> getChangedNodes() { - return Collections.emptySet(); - } - - @NotNull - @Override - public Collection> getChangedEdges() { - return edgeChanges; - } - }; + return new GraphChanges.GraphChangesImpl(Collections.>emptySet(), edgeChanges); } - - private static class ChangedEdge implements GraphChanges.Edge { - private final int myUpNodeId; - private final int myDownNodeId; - private final boolean myRemoved; - - private ChangedEdge(int upNodeId, int downNodeId, boolean removed) { - myUpNodeId = upNodeId; - myDownNodeId = downNodeId; - myRemoved = removed; - } - - @Nullable - @Override - public Integer upNodeId() { - return myUpNodeId; - } - - @Nullable - @Override - public Integer downNodeId() { - return myDownNodeId; - } - - @Nullable - @Override - public Integer additionInfo() { - return null; // TODO huh? - } - - @Override - public boolean removed() { - return myRemoved; - } - } - }