1/* This file was generated by SableCC (http://www.sablecc.org/). */
2
3package com.google.clearsilver.jsilver.syntax.node;
4
5import com.google.clearsilver.jsilver.syntax.analysis.*;
6
7@SuppressWarnings("nls")
8public final class ALoopToCommand extends PCommand
9{
10    private PPosition _position_;
11    private PVariable _variable_;
12    private PExpression _expression_;
13    private PCommand _command_;
14
15    public ALoopToCommand()
16    {
17        // Constructor
18    }
19
20    public ALoopToCommand(
21        @SuppressWarnings("hiding") PPosition _position_,
22        @SuppressWarnings("hiding") PVariable _variable_,
23        @SuppressWarnings("hiding") PExpression _expression_,
24        @SuppressWarnings("hiding") PCommand _command_)
25    {
26        // Constructor
27        setPosition(_position_);
28
29        setVariable(_variable_);
30
31        setExpression(_expression_);
32
33        setCommand(_command_);
34
35    }
36
37    @Override
38    public Object clone()
39    {
40        return new ALoopToCommand(
41            cloneNode(this._position_),
42            cloneNode(this._variable_),
43            cloneNode(this._expression_),
44            cloneNode(this._command_));
45    }
46
47    public void apply(Switch sw)
48    {
49        ((Analysis) sw).caseALoopToCommand(this);
50    }
51
52    public PPosition getPosition()
53    {
54        return this._position_;
55    }
56
57    public void setPosition(PPosition node)
58    {
59        if(this._position_ != null)
60        {
61            this._position_.parent(null);
62        }
63
64        if(node != null)
65        {
66            if(node.parent() != null)
67            {
68                node.parent().removeChild(node);
69            }
70
71            node.parent(this);
72        }
73
74        this._position_ = node;
75    }
76
77    public PVariable getVariable()
78    {
79        return this._variable_;
80    }
81
82    public void setVariable(PVariable node)
83    {
84        if(this._variable_ != null)
85        {
86            this._variable_.parent(null);
87        }
88
89        if(node != null)
90        {
91            if(node.parent() != null)
92            {
93                node.parent().removeChild(node);
94            }
95
96            node.parent(this);
97        }
98
99        this._variable_ = node;
100    }
101
102    public PExpression getExpression()
103    {
104        return this._expression_;
105    }
106
107    public void setExpression(PExpression node)
108    {
109        if(this._expression_ != null)
110        {
111            this._expression_.parent(null);
112        }
113
114        if(node != null)
115        {
116            if(node.parent() != null)
117            {
118                node.parent().removeChild(node);
119            }
120
121            node.parent(this);
122        }
123
124        this._expression_ = node;
125    }
126
127    public PCommand getCommand()
128    {
129        return this._command_;
130    }
131
132    public void setCommand(PCommand node)
133    {
134        if(this._command_ != null)
135        {
136            this._command_.parent(null);
137        }
138
139        if(node != null)
140        {
141            if(node.parent() != null)
142            {
143                node.parent().removeChild(node);
144            }
145
146            node.parent(this);
147        }
148
149        this._command_ = node;
150    }
151
152    @Override
153    public String toString()
154    {
155        return ""
156            + toString(this._position_)
157            + toString(this._variable_)
158            + toString(this._expression_)
159            + toString(this._command_);
160    }
161
162    @Override
163    void removeChild(@SuppressWarnings("unused") Node child)
164    {
165        // Remove child
166        if(this._position_ == child)
167        {
168            this._position_ = null;
169            return;
170        }
171
172        if(this._variable_ == child)
173        {
174            this._variable_ = null;
175            return;
176        }
177
178        if(this._expression_ == child)
179        {
180            this._expression_ = null;
181            return;
182        }
183
184        if(this._command_ == child)
185        {
186            this._command_ = null;
187            return;
188        }
189
190        throw new RuntimeException("Not a child.");
191    }
192
193    @Override
194    void replaceChild(@SuppressWarnings("unused") Node oldChild, @SuppressWarnings("unused") Node newChild)
195    {
196        // Replace child
197        if(this._position_ == oldChild)
198        {
199            setPosition((PPosition) newChild);
200            return;
201        }
202
203        if(this._variable_ == oldChild)
204        {
205            setVariable((PVariable) newChild);
206            return;
207        }
208
209        if(this._expression_ == oldChild)
210        {
211            setExpression((PExpression) newChild);
212            return;
213        }
214
215        if(this._command_ == oldChild)
216        {
217            setCommand((PCommand) newChild);
218            return;
219        }
220
221        throw new RuntimeException("Not a child.");
222    }
223}
224