1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.dependency.tree;
20
21 import java.io.Writer;
22 import java.util.List;
23 import org.apache.maven.shared.dependency.graph.DependencyNode;
24 import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
25
26
27
28
29
30
31
32
33 public class DOTDependencyNodeVisitor extends AbstractSerializingVisitor implements DependencyNodeVisitor {
34
35
36
37
38
39
40 public DOTDependencyNodeVisitor(Writer writer) {
41 super(writer);
42 }
43
44
45
46
47 @Override
48 public boolean visit(DependencyNode node) {
49 if (node.getParent() == null || node.getParent() == node) {
50 writer.write("digraph \"" + node.toNodeString() + "\" { " + System.lineSeparator());
51 }
52
53
54
55 List<DependencyNode> children = node.getChildren();
56
57 for (DependencyNode child : children) {
58 writer.println("\t\"" + node.toNodeString() + "\" -> \"" + child.toNodeString() + "\" ; ");
59 }
60
61 return true;
62 }
63
64
65
66
67 @Override
68 public boolean endVisit(DependencyNode node) {
69 if (node.getParent() == null || node.getParent() == node) {
70 writer.write(" } ");
71 }
72 return true;
73 }
74 }