X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FGraphViz.java;fp=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FGraphViz.java;h=d5f1bcf384dcc7806a1bee59011b48a0bb7c593b;hp=ef08fae8ab8a028d443b84bb9f056e248141396b;hb=225993309e6183afa9a88fc13d39df56be54b992;hpb=eda544585c2304faa82d249c4744fd5cecbf9211 diff --git a/src/edu/berkeley/sbp/util/GraphViz.java b/src/edu/berkeley/sbp/util/GraphViz.java index ef08fae..d5f1bcf 100644 --- a/src/edu/berkeley/sbp/util/GraphViz.java +++ b/src/edu/berkeley/sbp/util/GraphViz.java @@ -33,9 +33,14 @@ public class GraphViz { labels.add(label); n.inbound.add(this); } + public String getParentName() { + if (inbound.size()==1 && inbound.get(0).simple()) + return inbound.get(0).getParentName(); + return name(); + } public String name() { if (inbound.size()==1 && inbound.get(0).simple()) - return inbound.get(0).name()+":node_"+idx; + return inbound.get(0).getParentName()+":node_"+idx; return "node_"+idx; } public void edges(PrintWriter pw) { @@ -43,7 +48,8 @@ public class GraphViz { for(int i=0; i " + n.name() + " [color="+color+" " +(label==null?"":("label=\""+label+"\""))+ "];\n"); + pw.println(" "+name()+" -> " + n.name() + " [color="+color+" " + +(label==null?"":("label=\""+StringUtil.escapify(label.toString(), "\\\"\r\n")+"\""))+ "];\n"); } } public int numEdges() { return edges.size(); } @@ -80,17 +86,17 @@ public class GraphViz { if (!first) pw.print("|"); first = false; pw.print(""); - pw.print(StringUtil.escapify(n.label,"\\\"")); + pw.print(StringUtil.escapify(n.label,"\\\"\r\n")); } if (!complex) pw.print("}"); - pw.print("\""); + pw.print("\" "); } else { pw.print(" label=\""); - pw.print(StringUtil.escapify(label,"\\\"")); - pw.print("\""); + pw.print(StringUtil.escapify(label,"\\\"\r\n")); + pw.print("\" "); } pw.print("color="+color); - if (comment!=null) pw.print(" comment=\""+StringUtil.escapify(comment,"\\\"")+"\" "); + if (comment!=null) pw.print(" comment=\""+StringUtil.escapify(comment,"\\\"\r\n")+"\" "); pw.print("];\n"); } } @@ -117,6 +123,7 @@ public class GraphViz { Runtime.getRuntime().exec(new String[] { "dot", "-Tsvg" }); } + public void dump(OutputStream os) { dump(new PrintWriter(new OutputStreamWriter(os))); } public void dump(PrintWriter pw) { IdentityHashMap done = new IdentityHashMap(); pw.println("digraph G { rankdir=LR; ordering=out; \n");