package ilarkesto.tools.graphviz; import java.util.ArrayList; import java.util.List; public class Graph { private List<Node> nodes = new ArrayList<Node>(); private List<Edge> edges = new ArrayList<Edge>(); private int nodeCount; public Node node(String label) { Node node = new Node("n" + ++nodeCount); node.label(label); nodes.add(node); return node; } public Edge edge(Node from, Node to) { Edge edge = new Edge(from, to); edges.add(edge); return edge; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("digraph G {\n"); for (Node node : nodes) sb.append(" ").append(node).append("\n"); for (Edge edge : edges) { sb.append(" ").append(edge).append("\n"); } sb.append("}\n"); return sb.toString(); } }