private String toDot(boolean includeAdvisors) {
            String STYLE_WAITING = "";
            String STYLE_RUNNABLE = "style=filled color=yellow";
            String STYLE_RUNNING = "style=filled color=green";
            String STYLE_FINISHED = "style=filled color=grey";
            StringBuilder sb = new StringBuilder("digraph g {\n");
            Set< BeanInitializer > runnables = getRunnableInitializers();
            for (BeanInitializer bi : getInitializers(Status.WAITING, true, includeAdvisors, true, true)) {
                String style = runnables.contains(bi) ? STYLE_RUNNABLE : STYLE_WAITING;
                String name = getSanitizedBeanName(bi);
                String label = getLabel(bi);
                sb.append("  " + name + "[label=\"" + label + "\" " + style + "]\n");
            }
            for (BeanInitializer bi : getInitializers(Status.RUNNING, true, includeAdvisors, true, true)) {
                String name = getSanitizedBeanName(bi);
                String label = getLabel(bi);
                sb.append("  " + name + "[label=\"" + label + "\" " + STYLE_RUNNING + "]\n");
            }
            for (BeanInitializer bi : getInitializers(Status.FINISHED, true, includeAdvisors, true, true)) {
                String name = getSanitizedBeanName(bi);
                String label = getLabel(bi);
                sb.append("  " + name + "[label=\"" + label + "\" " + STYLE_FINISHED + "]\n");
            }
            for (BeanInitializer bi : getInitializers(null, true, includeAdvisors, true, true)) {
                String name1 = getSanitizedBeanName(bi);
                String dotted = bi.getStatus() == Status.FINISHED ? "style=dotted" : "";
                for (BeanInitializer dependency : bi) {
                    if (!dependency.isAdvisor() || includeAdvisors) {
                        String name2 = getSanitizedBeanName(dependency);
                        sb.append("  " + name1 + " -> " + name2 + " [" + dotted + "]\n");
                    }
                }
            }
            sb.append("}\n");
            return sb.toString();
        }