[vcs-log][linear-bek] simplify code (remember an instance of LinearBekGraphBuilder)

This commit is contained in:
Julia Beliaeva
2015-02-13 15:51:59 +03:00
parent 5fef3aa40f
commit 3ff72fa396
2 changed files with 8 additions and 17 deletions
@@ -36,25 +36,16 @@ import java.util.*;
public class LinearBekController extends CascadeLinearGraphController {
@NotNull private final LinearBekGraph myCompiledGraph;
private final BekIntMap myBekIntMap;
private final BekGraphLayout myBekGraphLayout;
private final LinearBekGraphBuilder myLinearBekGraphBuilder;
public LinearBekController(@NotNull BekBaseLinearGraphController controller, @NotNull PermanentGraphInfo permanentGraphInfo) {
super(controller, permanentGraphInfo);
myBekIntMap = controller.getBekIntMap();
myBekGraphLayout = new BekGraphLayout(permanentGraphInfo.getPermanentGraphLayout(), myBekIntMap);
myCompiledGraph = compileGraph(getDelegateLinearGraphController().getCompiledGraph(), myBekGraphLayout);
}
myCompiledGraph = new LinearBekGraph(getDelegateLinearGraphController().getCompiledGraph());
myLinearBekGraphBuilder = new LinearBekGraphBuilder(myCompiledGraph, new BekGraphLayout(permanentGraphInfo.getPermanentGraphLayout(), controller.getBekIntMap()));
static LinearBekGraph compileGraph(@NotNull LinearGraph graph, @NotNull GraphLayout graphLayout) {
long start = System.currentTimeMillis();
LinearBekGraph linearBekGraph = new LinearBekGraph(graph);
new LinearBekGraphBuilder(linearBekGraph, graphLayout).collapseAll();
myLinearBekGraphBuilder.collapseAll();
System.err.println((System.currentTimeMillis() - start) / 1000.0 + " sec");
return linearBekGraph;
}
@NotNull
@@ -77,7 +68,7 @@ public class LinearBekController extends CascadeLinearGraphController {
}
}
else if (graphElement instanceof GraphNode) {
if (new LinearBekGraphBuilder(myCompiledGraph, myBekGraphLayout).collapseFragment(((GraphNode)graphElement).getNodeIndex())) {
if (myLinearBekGraphBuilder.collapseFragment(((GraphNode)graphElement).getNodeIndex())) {
return new LinearGraphAnswer(GraphChanges.SOME_CHANGES, null, null, null);
}
}
@@ -92,8 +83,7 @@ public class LinearBekController extends CascadeLinearGraphController {
}
}
else if (graphElement instanceof GraphNode) {
LinearBekGraphBuilder.MergeFragment fragment =
new LinearBekGraphBuilder(myCompiledGraph, myBekGraphLayout).getFragment(((GraphNode)graphElement).getNodeIndex());
LinearBekGraphBuilder.MergeFragment fragment = myLinearBekGraphBuilder.getFragment(((GraphNode)graphElement).getNodeIndex());
if (fragment != null) {
return LinearGraphUtils.createSelectedAnswer(myCompiledGraph, fragment.getAllNodes());
}
@@ -38,7 +38,8 @@ public fun runLinearBek(graphBuilder: TestGraphBuilder.() -> Unit): LinearBekGra
val beforeLinearBek = log.graph.graph(graphBuilder)
val beforeLinearBekLayout = GraphLayoutBuilder.build(beforeLinearBek, {(nodeIndex1, nodeIndex2) -> nodeIndex1 - nodeIndex2 })
val afterLinearBek = LinearBekController.compileGraph(beforeLinearBek, beforeLinearBekLayout)
val afterLinearBek = LinearBekGraph(beforeLinearBek)
LinearBekGraphBuilder(afterLinearBek, beforeLinearBekLayout).collapseAll()
return afterLinearBek
}