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 AEscapeCommand extends PCommand
9{
10    private PPosition _position_;
11    private PExpression _expression_;
12    private PCommand _command_;
13
14    public AEscapeCommand()
15    {
16        // Constructor
17    }
18
19    public AEscapeCommand(
20        @SuppressWarnings("hiding") PPosition _position_,
21        @SuppressWarnings("hiding") PExpression _expression_,
22        @SuppressWarnings("hiding") PCommand _command_)
23    {
24        // Constructor
25        setPosition(_position_);
26
27        setExpression(_expression_);
28
29        setCommand(_command_);
30
31    }
32
33    @Override
34    public Object clone()
35    {
36        return new AEscapeCommand(
37            cloneNode(this._position_),
38            cloneNode(this._expression_),
39            cloneNode(this._command_));
40    }
41
42    public void apply(Switch sw)
43    {
44        ((Analysis) sw).caseAEscapeCommand(this);
45    }
46
47    public PPosition getPosition()
48    {
49        return this._position_;
50    }
51
52    public void setPosition(PPosition node)
53    {
54        if(this._position_ != null)
55        {
56            this._position_.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._position_ = node;
70    }
71
72    public PExpression getExpression()
73    {
74        return this._expression_;
75    }
76
77    public void setExpression(PExpression node)
78    {
79        if(this._expression_ != null)
80        {
81            this._expression_.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._expression_ = node;
95    }
96
97    public PCommand getCommand()
98    {
99        return this._command_;
100    }
101
102    public void setCommand(PCommand node)
103    {
104        if(this._command_ != null)
105        {
106            this._command_.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._command_ = node;
120    }
121
122    @Override
123    public String toString()
124    {
125        return ""
126            + toString(this._position_)
127            + toString(this._expression_)
128            + toString(this._command_);
129    }
130
131    @Override
132    void removeChild(@SuppressWarnings("unused") Node child)
133    {
134        // Remove child
135        if(this._position_ == child)
136        {
137            this._position_ = null;
138            return;
139        }
140
141        if(this._expression_ == child)
142        {
143            this._expression_ = null;
144            return;
145        }
146
147        if(this._command_ == child)
148        {
149            this._command_ = 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._position_ == oldChild)
161        {
162            setPosition((PPosition) newChild);
163            return;
164        }
165
166        if(this._expression_ == oldChild)
167        {
168            setExpression((PExpression) newChild);
169            return;
170        }
171
172        if(this._command_ == oldChild)
173        {
174            setCommand((PCommand) newChild);
175            return;
176        }
177
178        throw new RuntimeException("Not a child.");
179    }
180}
181