]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.basicexpression/src/org/simantics/basicexpression/node/Node.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.basicexpression / src / org / simantics / basicexpression / node / Node.java
1 /* This file was generated by SableCC (http://www.sablecc.org/). */\r
2 \r
3 package org.simantics.basicexpression.node;\r
4 \r
5 import java.util.*;\r
6 \r
7 @SuppressWarnings("nls")\r
8 public abstract class Node implements Switchable, Cloneable\r
9 {\r
10     private Node parent;\r
11 \r
12     @Override\r
13     public abstract Object clone();\r
14 \r
15     public Node parent()\r
16     {\r
17         return this.parent;\r
18     }\r
19 \r
20     void parent(@SuppressWarnings("hiding") Node parent)\r
21     {\r
22         this.parent = parent;\r
23     }\r
24 \r
25     abstract void removeChild(Node child);\r
26     abstract void replaceChild(Node oldChild, Node newChild);\r
27 \r
28     public void replaceBy(Node node)\r
29     {\r
30         this.parent.replaceChild(this, node);\r
31     }\r
32 \r
33     protected String toString(Node node)\r
34     {\r
35         if(node != null)\r
36         {\r
37             return node.toString();\r
38         }\r
39 \r
40         return "";\r
41     }\r
42 \r
43     protected String toString(List list)\r
44     {\r
45         StringBuffer s = new StringBuffer();\r
46 \r
47         for(Iterator i = list.iterator(); i.hasNext();)\r
48         {\r
49             s.append(i.next());\r
50         }\r
51 \r
52         return s.toString();\r
53     }\r
54 \r
55     @SuppressWarnings("unchecked")\r
56     protected <T extends Node> T cloneNode(T node)\r
57     {\r
58         if(node != null)\r
59         {\r
60             return (T) node.clone();\r
61         }\r
62 \r
63         return null;\r
64     }\r
65 \r
66     protected <T> List<T> cloneList(List<T> list)\r
67     {\r
68         List<T> clone = new LinkedList<T>();\r
69 \r
70         for(T n : list)\r
71         {\r
72             clone.add(n);\r
73         }\r
74 \r
75         return clone;\r
76     }\r
77 }\r