1 package Analysis.SSJava;
3 import java.util.ArrayList;
4 import java.util.HashMap;
8 public class InheritanceTree<T> {
11 private Map<T, Node<T>> nodeMap;
13 public InheritanceTree(T rootData) {
14 root = new Node<T>(rootData);
15 root.children = new ArrayList<Node<T>>();
16 nodeMap = new HashMap<T, Node<T>>();
17 nodeMap.put(rootData, root);
20 public void addParentChild(T parent, T child) {
21 Node<T> parentNode = getTreeNode(parent);
22 Node<T> childNode = getTreeNode(child);
23 parentNode.children.add(childNode);
24 System.out.println("childNode=" + childNode);
25 childNode.parent = parentNode;
28 public Node<T> getTreeNode(T in) {
29 if (!nodeMap.containsKey(in)) {
30 Node<T> node = new Node(in);
31 nodeMap.put(in, node);
33 return nodeMap.get(in);
36 public Node<T> getRootNode() {
44 public Node<T> parent;
45 public List<Node<T>> children;
49 children = new ArrayList<Node<T>>();
52 public Node<T> getParent() {
60 public List<Node<T>> getChildren() {