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