001    /* This file was generated with JastAdd2 (http://jastadd.org) version R20130213 */
002    package AST;
003    
004    import java.util.HashSet;
005    import java.io.File;
006    import java.util.*;
007    import beaver.*;
008    import java.util.ArrayList;
009    import java.util.zip.*;
010    import java.io.*;
011    import java.io.FileNotFoundException;
012    import java.util.Collection;
013    
014    /**
015     * @production BodyDeclList : {@link List};
016     * @ast node
017     * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Generics.ast:13
018     */
019    public class BodyDeclList extends List implements Cloneable {
020      /**
021       * @apilevel low-level
022       */
023      public void flushCache() {
024      }
025      /**
026       * @apilevel internal
027       */
028      public void flushCollectionCache() {
029      }
030      /**
031       * @apilevel internal
032       */
033      @SuppressWarnings({"unchecked", "cast"})
034      public BodyDeclList clone() throws CloneNotSupportedException {
035        BodyDeclList node = (BodyDeclList)super.clone();
036        node.localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values = null;
037        node.localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list = null;    node.localFieldCopy_FieldDeclaration_MemberSubstitutor_values = null;
038        node.localFieldCopy_FieldDeclaration_MemberSubstitutor_list = null;    node.localClassDeclCopy_ClassDecl_MemberSubstitutor_values = null;
039        node.localClassDeclCopy_ClassDecl_MemberSubstitutor_list = null;    node.localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values = null;
040        node.localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list = null;    node.constructorCopy_ConstructorDecl_MemberSubstitutor_values = null;
041        node.constructorCopy_ConstructorDecl_MemberSubstitutor_list = null;    node.in$Circle(false);
042        node.is$Final(false);
043        return node;
044      }
045    /**
046     * @apilevel internal
047     */
048      @SuppressWarnings({"unchecked", "cast"})
049    public BodyDeclList copy() {
050      
051      try {
052        BodyDeclList node = (BodyDeclList) clone();
053        node.parent = null;
054        if(children != null)
055          node.children = (ASTNode[]) children.clone();
056        
057        return node;
058      } catch (CloneNotSupportedException e) {
059        throw new Error("Error: clone not supported for " + getClass().getName());
060      }
061      
062    }/**
063     * Create a deep copy of the AST subtree at this node.
064     * The copy is dangling, i.e. has no parent.
065     * @return dangling copy of the subtree at this node
066     * @apilevel low-level
067     */
068      @SuppressWarnings({"unchecked", "cast"})
069    public BodyDeclList fullCopy() {
070      
071      BodyDeclList tree = (BodyDeclList) copy();
072      if (children != null) {
073        for (int i = 0; i < children.length; ++i) {
074          
075          ASTNode child = (ASTNode) children[i];
076          if(child != null) {
077            child = child.fullCopy();
078            tree.setChild(child, i);
079          }
080        }
081      }
082      return tree;
083      
084    }  /**
085       * @ast method 
086       * 
087       */
088      public BodyDeclList() {
089        super();
090    
091        is$Final(true);
092    
093      }
094      /**
095       * Initializes the child array to the correct size.
096       * Initializes List and Opt nta children.
097       * @apilevel internal
098       * @ast method
099       * @ast method 
100       * 
101       */
102      public void init$Children() {
103      }
104      /**
105       * @apilevel low-level
106       * @ast method 
107       * 
108       */
109      protected int numChildren() {
110        return 0;
111      }
112      /**
113       * @apilevel internal
114       * @ast method 
115       * 
116       */
117      public boolean mayHaveRewrite() {
118        return true;
119      }
120      /**
121       * @apilevel internal
122       */
123      protected java.util.Map localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values;
124      /**
125       * @apilevel internal
126       */
127      protected List localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list;
128      /**
129       * @attribute syn
130       * @aspect LookupParTypeDecl
131       * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Generics.jrag:1114
132       */
133      @SuppressWarnings({"unchecked", "cast"})
134      public BodyDecl localMethodSignatureCopy(MethodDecl originalMethod, MemberSubstitutor m) {
135        java.util.List _parameters = new java.util.ArrayList(2);
136        _parameters.add(originalMethod);
137        _parameters.add(m);
138        if(localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values == null) localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values = new java.util.HashMap(4);
139        if(localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values.containsKey(_parameters)) {
140          return (BodyDecl)localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values.get(_parameters);
141        }
142          ASTNode$State state = state();
143      int num = state.boundariesCrossed;
144      boolean isFinal = this.is$Final();
145        BodyDecl localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value = localMethodSignatureCopy_compute(originalMethod, m);
146        if(localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list == null) {
147          localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list = new List();
148          localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list.is$Final = true;
149          localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list.setParent(this);
150        }
151        localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list.add(localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value);
152        if(localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value != null) {
153          localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value = (BodyDecl)localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list.getChild(localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list.numChildren-1);
154          localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value.is$Final = true;
155        }
156      if(true){ localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values.put(_parameters, localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value); }
157            return localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value;
158      }
159      /**
160       * @apilevel internal
161       */
162      private BodyDecl localMethodSignatureCopy_compute(MethodDecl originalMethod, MemberSubstitutor m) {
163         return originalMethod.substitutedBodyDecl(m);
164      }
165      /**
166       * @apilevel internal
167       */
168      protected java.util.Map localFieldCopy_FieldDeclaration_MemberSubstitutor_values;
169      /**
170       * @apilevel internal
171       */
172      protected List localFieldCopy_FieldDeclaration_MemberSubstitutor_list;
173      /**
174       * @attribute syn
175       * @aspect LookupParTypeDecl
176       * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Generics.jrag:1148
177       */
178      @SuppressWarnings({"unchecked", "cast"})
179      public BodyDecl localFieldCopy(FieldDeclaration originalDecl, MemberSubstitutor m) {
180        java.util.List _parameters = new java.util.ArrayList(2);
181        _parameters.add(originalDecl);
182        _parameters.add(m);
183        if(localFieldCopy_FieldDeclaration_MemberSubstitutor_values == null) localFieldCopy_FieldDeclaration_MemberSubstitutor_values = new java.util.HashMap(4);
184        if(localFieldCopy_FieldDeclaration_MemberSubstitutor_values.containsKey(_parameters)) {
185          return (BodyDecl)localFieldCopy_FieldDeclaration_MemberSubstitutor_values.get(_parameters);
186        }
187          ASTNode$State state = state();
188      int num = state.boundariesCrossed;
189      boolean isFinal = this.is$Final();
190        BodyDecl localFieldCopy_FieldDeclaration_MemberSubstitutor_value = localFieldCopy_compute(originalDecl, m);
191        if(localFieldCopy_FieldDeclaration_MemberSubstitutor_list == null) {
192          localFieldCopy_FieldDeclaration_MemberSubstitutor_list = new List();
193          localFieldCopy_FieldDeclaration_MemberSubstitutor_list.is$Final = true;
194          localFieldCopy_FieldDeclaration_MemberSubstitutor_list.setParent(this);
195        }
196        localFieldCopy_FieldDeclaration_MemberSubstitutor_list.add(localFieldCopy_FieldDeclaration_MemberSubstitutor_value);
197        if(localFieldCopy_FieldDeclaration_MemberSubstitutor_value != null) {
198          localFieldCopy_FieldDeclaration_MemberSubstitutor_value = (BodyDecl)localFieldCopy_FieldDeclaration_MemberSubstitutor_list.getChild(localFieldCopy_FieldDeclaration_MemberSubstitutor_list.numChildren-1);
199          localFieldCopy_FieldDeclaration_MemberSubstitutor_value.is$Final = true;
200        }
201      if(true){ localFieldCopy_FieldDeclaration_MemberSubstitutor_values.put(_parameters, localFieldCopy_FieldDeclaration_MemberSubstitutor_value); }
202            return localFieldCopy_FieldDeclaration_MemberSubstitutor_value;
203      }
204      /**
205       * @apilevel internal
206       */
207      private BodyDecl localFieldCopy_compute(FieldDeclaration originalDecl, MemberSubstitutor m) {
208        return originalDecl.substitutedBodyDecl(m);
209      }
210      /**
211       * @apilevel internal
212       */
213      protected java.util.Map localClassDeclCopy_ClassDecl_MemberSubstitutor_values;
214      /**
215       * @apilevel internal
216       */
217      protected List localClassDeclCopy_ClassDecl_MemberSubstitutor_list;
218      /**
219       * @attribute syn
220       * @aspect LookupParTypeDecl
221       * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Generics.jrag:1204
222       */
223      @SuppressWarnings({"unchecked", "cast"})
224      public MemberClassDecl localClassDeclCopy(ClassDecl originalDecl, MemberSubstitutor m) {
225        java.util.List _parameters = new java.util.ArrayList(2);
226        _parameters.add(originalDecl);
227        _parameters.add(m);
228        if(localClassDeclCopy_ClassDecl_MemberSubstitutor_values == null) localClassDeclCopy_ClassDecl_MemberSubstitutor_values = new java.util.HashMap(4);
229        if(localClassDeclCopy_ClassDecl_MemberSubstitutor_values.containsKey(_parameters)) {
230          return (MemberClassDecl)localClassDeclCopy_ClassDecl_MemberSubstitutor_values.get(_parameters);
231        }
232          ASTNode$State state = state();
233      int num = state.boundariesCrossed;
234      boolean isFinal = this.is$Final();
235        MemberClassDecl localClassDeclCopy_ClassDecl_MemberSubstitutor_value = localClassDeclCopy_compute(originalDecl, m);
236        if(localClassDeclCopy_ClassDecl_MemberSubstitutor_list == null) {
237          localClassDeclCopy_ClassDecl_MemberSubstitutor_list = new List();
238          localClassDeclCopy_ClassDecl_MemberSubstitutor_list.is$Final = true;
239          localClassDeclCopy_ClassDecl_MemberSubstitutor_list.setParent(this);
240        }
241        localClassDeclCopy_ClassDecl_MemberSubstitutor_list.add(localClassDeclCopy_ClassDecl_MemberSubstitutor_value);
242        if(localClassDeclCopy_ClassDecl_MemberSubstitutor_value != null) {
243          localClassDeclCopy_ClassDecl_MemberSubstitutor_value = (MemberClassDecl)localClassDeclCopy_ClassDecl_MemberSubstitutor_list.getChild(localClassDeclCopy_ClassDecl_MemberSubstitutor_list.numChildren-1);
244          localClassDeclCopy_ClassDecl_MemberSubstitutor_value.is$Final = true;
245        }
246      if(true){ localClassDeclCopy_ClassDecl_MemberSubstitutor_values.put(_parameters, localClassDeclCopy_ClassDecl_MemberSubstitutor_value); }
247            return localClassDeclCopy_ClassDecl_MemberSubstitutor_value;
248      }
249      /**
250       * @apilevel internal
251       */
252      private MemberClassDecl localClassDeclCopy_compute(ClassDecl originalDecl, MemberSubstitutor m) {
253        ClassDecl copy = originalDecl.substitutedClassDecl(m);
254        return new MemberClassDecl(copy);
255      }
256      /**
257       * @apilevel internal
258       */
259      protected java.util.Map localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values;
260      /**
261       * @apilevel internal
262       */
263      protected List localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list;
264      /**
265       * @attribute syn
266       * @aspect LookupParTypeDecl
267       * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Generics.jrag:1208
268       */
269      @SuppressWarnings({"unchecked", "cast"})
270      public MemberInterfaceDecl localInterfaceDeclCopy(InterfaceDecl originalDecl, MemberSubstitutor m) {
271        java.util.List _parameters = new java.util.ArrayList(2);
272        _parameters.add(originalDecl);
273        _parameters.add(m);
274        if(localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values == null) localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values = new java.util.HashMap(4);
275        if(localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values.containsKey(_parameters)) {
276          return (MemberInterfaceDecl)localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values.get(_parameters);
277        }
278          ASTNode$State state = state();
279      int num = state.boundariesCrossed;
280      boolean isFinal = this.is$Final();
281        MemberInterfaceDecl localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value = localInterfaceDeclCopy_compute(originalDecl, m);
282        if(localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list == null) {
283          localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list = new List();
284          localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list.is$Final = true;
285          localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list.setParent(this);
286        }
287        localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list.add(localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value);
288        if(localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value != null) {
289          localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value = (MemberInterfaceDecl)localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list.getChild(localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list.numChildren-1);
290          localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value.is$Final = true;
291        }
292      if(true){ localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values.put(_parameters, localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value); }
293            return localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value;
294      }
295      /**
296       * @apilevel internal
297       */
298      private MemberInterfaceDecl localInterfaceDeclCopy_compute(InterfaceDecl originalDecl, MemberSubstitutor m) {
299        InterfaceDecl copy = originalDecl.substitutedInterfaceDecl(m);
300        return new MemberInterfaceDecl(copy);
301      }
302      /**
303       * @apilevel internal
304       */
305      protected java.util.Map constructorCopy_ConstructorDecl_MemberSubstitutor_values;
306      /**
307       * @apilevel internal
308       */
309      protected List constructorCopy_ConstructorDecl_MemberSubstitutor_list;
310      /**
311       * @attribute syn
312       * @aspect LookupParTypeDecl
313       * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Generics.jrag:1234
314       */
315      @SuppressWarnings({"unchecked", "cast"})
316      public BodyDecl constructorCopy(ConstructorDecl originalDecl, MemberSubstitutor m) {
317        java.util.List _parameters = new java.util.ArrayList(2);
318        _parameters.add(originalDecl);
319        _parameters.add(m);
320        if(constructorCopy_ConstructorDecl_MemberSubstitutor_values == null) constructorCopy_ConstructorDecl_MemberSubstitutor_values = new java.util.HashMap(4);
321        if(constructorCopy_ConstructorDecl_MemberSubstitutor_values.containsKey(_parameters)) {
322          return (BodyDecl)constructorCopy_ConstructorDecl_MemberSubstitutor_values.get(_parameters);
323        }
324          ASTNode$State state = state();
325      int num = state.boundariesCrossed;
326      boolean isFinal = this.is$Final();
327        BodyDecl constructorCopy_ConstructorDecl_MemberSubstitutor_value = constructorCopy_compute(originalDecl, m);
328        if(constructorCopy_ConstructorDecl_MemberSubstitutor_list == null) {
329          constructorCopy_ConstructorDecl_MemberSubstitutor_list = new List();
330          constructorCopy_ConstructorDecl_MemberSubstitutor_list.is$Final = true;
331          constructorCopy_ConstructorDecl_MemberSubstitutor_list.setParent(this);
332        }
333        constructorCopy_ConstructorDecl_MemberSubstitutor_list.add(constructorCopy_ConstructorDecl_MemberSubstitutor_value);
334        if(constructorCopy_ConstructorDecl_MemberSubstitutor_value != null) {
335          constructorCopy_ConstructorDecl_MemberSubstitutor_value = (BodyDecl)constructorCopy_ConstructorDecl_MemberSubstitutor_list.getChild(constructorCopy_ConstructorDecl_MemberSubstitutor_list.numChildren-1);
336          constructorCopy_ConstructorDecl_MemberSubstitutor_value.is$Final = true;
337        }
338      if(true){ constructorCopy_ConstructorDecl_MemberSubstitutor_values.put(_parameters, constructorCopy_ConstructorDecl_MemberSubstitutor_value); }
339            return constructorCopy_ConstructorDecl_MemberSubstitutor_value;
340      }
341      /**
342       * @apilevel internal
343       */
344      private BodyDecl constructorCopy_compute(ConstructorDecl originalDecl, MemberSubstitutor m) {
345        return originalDecl.substitutedBodyDecl(m);
346      }
347      /**
348       * @apilevel internal
349       */
350      public ASTNode rewriteTo() {
351        return super.rewriteTo();
352      }
353    }