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