1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.struts2.sitegraph.model;
23
24 import java.io.IOException;
25
26 /***
27 */
28 public abstract class SiteGraphNode implements Render, Comparable {
29 private String name;
30 private SubGraph parent;
31
32 public SiteGraphNode(String name) {
33 this.name = name;
34 }
35
36 public SubGraph getParent() {
37 return parent;
38 }
39
40 public void setParent(SubGraph parent) {
41 this.parent = parent;
42 }
43
44 public void render(IndentWriter writer) throws IOException {
45 writer.write(getFullName() + " [label=\"" + name + "\",color=\"" + getColor() + "\"];");
46 }
47
48 public String getFullName() {
49 String prefix = "";
50 if (parent != null) {
51 String parentPrefix = parent.getPrefix();
52 if (!parentPrefix.equals("")) {
53 prefix = parentPrefix + "_";
54 }
55 }
56 return prefix + cleanName();
57 }
58
59 private String cleanName() {
60 return name.replaceAll("[//./////-//$//{//}]", "_");
61 }
62
63 public abstract String getColor();
64
65 public int compareTo(Object o) {
66 return name.compareTo(((SiteGraphNode) o).name);
67 }
68 }