@Override protected String formatDependencyGraph(final ComponentAllocationDependencyGraph graph, final boolean includeWeights, final boolean useShortLabels, final boolean plotLoops) { final StringBuilder builder = new StringBuilder(); this.appendGraphHeader(builder); // Group nodes by execution containers final ConcurrentMap<ExecutionContainer, List<DependencyGraphNode<AllocationComponent>>> nodeMap = ComponentAllocationDependencyGraphFormatter .groupNodesByComponent(graph); for (final Entry<ExecutionContainer, List<DependencyGraphNode<AllocationComponent>>> entry : nodeMap.entrySet()) { this.handleContainerEntry(entry, builder, useShortLabels); } // Format the graph's edges graph.traverseWithVerticesFirst(new EdgeFormattingVisitor(builder, includeWeights, plotLoops, useShortLabels)); this.appendGraphFooter(builder); return builder.toString(); }