1 25 40 package org.jgrapht.ext; 41 42 import java.io.*; 43 44 import java.util.*; 45 46 import org.jgrapht.*; 47 48 49 65 public class VisioExporter<V, E> 66 { 67 68 70 private VertexNameProvider<V> vertexNameProvider; 71 72 74 80 public VisioExporter(VertexNameProvider<V> vertexNameProvider) 81 { 82 this.vertexNameProvider = vertexNameProvider; 83 } 84 85 88 public VisioExporter() 89 { 90 this(new StringNameProvider<V>()); 91 } 92 93 95 101 public void export(OutputStream output, Graph<V, E> g) 102 { 103 PrintStream out = new PrintStream(output); 104 105 for (Iterator<V> i = g.vertexSet().iterator(); i.hasNext();) { 106 exportVertex(out, i.next()); 107 } 108 109 for (Iterator<E> i = g.edgeSet().iterator(); i.hasNext();) { 110 exportEdge(out, i.next(), g); 111 } 112 113 out.flush(); 114 } 115 116 private void exportEdge(PrintStream out, E edge, Graph<V, E> g) 117 { 118 String sourceName = 119 vertexNameProvider.getVertexName(g.getEdgeSource(edge)); 120 String targetName = 121 vertexNameProvider.getVertexName(g.getEdgeTarget(edge)); 122 123 out.print("Link,"); 124 125 out.print(sourceName); 127 out.print("-->"); 128 out.print(targetName); 129 130 out.print(",,,"); 132 out.print(sourceName); 133 out.print(","); 134 out.print(targetName); 135 out.print("\n"); 136 } 137 138 private void exportVertex(PrintStream out, V vertex) 139 { 140 String name = vertexNameProvider.getVertexName(vertex); 141 142 out.print("Shape,"); 143 out.print(name); 144 out.print(",,"); out.print(name); 146 out.print("\n"); 147 } 148 } 149 | Popular Tags |