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