]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.basicexpression/src/org/simantics/basicexpression/node/AMinusExpression.java
Fixed multiple issues causing dangling references to discarded queries
[simantics/platform.git] / bundles / org.simantics.basicexpression / src / org / simantics / basicexpression / node / AMinusExpression.java
1 /* This file was generated by SableCC (http://www.sablecc.org/). */
2
3 package org.simantics.basicexpression.node;
4
5 import org.simantics.basicexpression.analysis.*;
6
7 @SuppressWarnings("nls")
8 public final class AMinusExpression extends PExpression
9 {
10     private PExpression _expression_;
11     private TMinus _minus_;
12     private PMultiplicative _multiplicative_;
13
14     public AMinusExpression()
15     {
16         // Constructor
17     }
18
19     public AMinusExpression(
20         @SuppressWarnings("hiding") PExpression _expression_,
21         @SuppressWarnings("hiding") TMinus _minus_,
22         @SuppressWarnings("hiding") PMultiplicative _multiplicative_)
23     {
24         // Constructor
25         setExpression(_expression_);
26
27         setMinus(_minus_);
28
29         setMultiplicative(_multiplicative_);
30
31     }
32
33     @Override
34     public Object clone()
35     {
36         return new AMinusExpression(
37             cloneNode(this._expression_),
38             cloneNode(this._minus_),
39             cloneNode(this._multiplicative_));
40     }
41
42     public void apply(Switch sw)
43     {
44         ((Analysis) sw).caseAMinusExpression(this);
45     }
46
47     public PExpression getExpression()
48     {
49         return this._expression_;
50     }
51
52     public void setExpression(PExpression node)
53     {
54         if(this._expression_ != null)
55         {
56             this._expression_.parent(null);
57         }
58
59         if(node != null)
60         {
61             if(node.parent() != null)
62             {
63                 node.parent().removeChild(node);
64             }
65
66             node.parent(this);
67         }
68
69         this._expression_ = node;
70     }
71
72     public TMinus getMinus()
73     {
74         return this._minus_;
75     }
76
77     public void setMinus(TMinus node)
78     {
79         if(this._minus_ != null)
80         {
81             this._minus_.parent(null);
82         }
83
84         if(node != null)
85         {
86             if(node.parent() != null)
87             {
88                 node.parent().removeChild(node);
89             }
90
91             node.parent(this);
92         }
93
94         this._minus_ = node;
95     }
96
97     public PMultiplicative getMultiplicative()
98     {
99         return this._multiplicative_;
100     }
101
102     public void setMultiplicative(PMultiplicative node)
103     {
104         if(this._multiplicative_ != null)
105         {
106             this._multiplicative_.parent(null);
107         }
108
109         if(node != null)
110         {
111             if(node.parent() != null)
112             {
113                 node.parent().removeChild(node);
114             }
115
116             node.parent(this);
117         }
118
119         this._multiplicative_ = node;
120     }
121
122     @Override
123     public String toString()
124     {
125         return ""
126             + toString(this._expression_)
127             + toString(this._minus_)
128             + toString(this._multiplicative_);
129     }
130
131     @Override
132     void removeChild(@SuppressWarnings("unused") Node child)
133     {
134         // Remove child
135         if(this._expression_ == child)
136         {
137             this._expression_ = null;
138             return;
139         }
140
141         if(this._minus_ == child)
142         {
143             this._minus_ = null;
144             return;
145         }
146
147         if(this._multiplicative_ == child)
148         {
149             this._multiplicative_ = null;
150             return;
151         }
152
153         throw new RuntimeException("Not a child.");
154     }
155
156     @Override
157     void replaceChild(@SuppressWarnings("unused") Node oldChild, @SuppressWarnings("unused") Node newChild)
158     {
159         // Replace child
160         if(this._expression_ == oldChild)
161         {
162             setExpression((PExpression) newChild);
163             return;
164         }
165
166         if(this._minus_ == oldChild)
167         {
168             setMinus((TMinus) newChild);
169             return;
170         }
171
172         if(this._multiplicative_ == oldChild)
173         {
174             setMultiplicative((PMultiplicative) newChild);
175             return;
176         }
177
178         throw new RuntimeException("Not a child.");
179     }
180 }