@Nonnull @Override public String toDotString() { Map<Transform, List<Transform>> adjMap = this.adjacencyMap(); Map<Transform, String> transformNames = new HashMap<>(); Set<String> knownNames = new HashSet<>(); final StringBuilder builder = new StringBuilder(256); builder.append("digraph Pipeline {\n"); for (Entry<Transform, List<Transform>> entry : adjMap.entrySet()) { Transform src = entry.getKey(); String srcName = transformNames.computeIfAbsent( src, t -> uniqueName(knownNames, t.name()) ); for (Transform dest : entry.getValue()) { String destName = transformNames.computeIfAbsent( dest, t -> uniqueName(knownNames, t.name()) ); builder.append("\t") .append("\"").append(escapeGraphviz(srcName)).append("\"") .append(" -> ") .append("\"").append(escapeGraphviz(destName)).append("\"") .append(";\n"); } } builder.append("}"); return builder.toString(); }
.append("\"").append(escapeGraphviz(v.getName())).append("\"") .append(";\n"); .append("\"").append(escapeGraphviz(e.getSourceName())).append("\"") .append(" -> ") .append("\"").append(escapeGraphviz(e.getDestName())).append("\""); if (!labels.isEmpty()) { builder.append(labels.stream().collect(joining("-", " [label=\"", "\"]")));