@Override
protected String formatDependencyGraph(final ComponentAllocationDependencyGraph graph, final boolean includeWeights, final boolean useShortLabels,
final boolean plotLoops) {
final StringBuilder builder = new StringBuilder();
this.appendGraphHeader(builder);
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);
}
graph.traverseWithVerticesFirst(new EdgeFormattingVisitor(builder, includeWeights, plotLoops, useShortLabels));
this.appendGraphFooter(builder);
return builder.toString();
}