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     * @production BodyDecl : {@link ASTNode};
015     * @ast node
016     * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/java.ast:72
017     */
018    public abstract class BodyDecl extends ASTNode<ASTNode> implements Cloneable {
019      /**
020       * @apilevel low-level
021       */
022      public void flushCache() {
023      }
024      /**
025       * @apilevel internal
026       */
027      public void flushCollectionCache() {
028      }
029      /**
030       * @apilevel internal
031       */
032      @SuppressWarnings({"unchecked", "cast"})
033      public BodyDecl clone() throws CloneNotSupportedException {
034        BodyDecl node = (BodyDecl)super.clone();
035        node.isDAafter_Variable_values = null;
036        node.isDUafter_Variable_values = null;
037        node.attributes_computed = false;
038        node.attributes_value = null;
039        node.isDAbefore_Variable_values = null;
040        node.isDUbefore_Variable_values = null;
041        node.typeThrowable_computed = false;
042        node.typeThrowable_value = null;
043        node.lookupVariable_String_values = null;
044        node.in$Circle(false);
045        node.is$Final(false);
046        return node;
047      }
048      /**
049       * @ast method 
050       * @aspect BranchTarget
051       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/BranchTarget.jrag:210
052       */
053      public void collectFinally(Stmt branchStmt, ArrayList list) {
054        // terminate search if body declaration is reached
055      }
056      /**
057       * @ast method 
058       * @aspect GenerateClassfile
059       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/GenerateClassfile.jrag:242
060       */
061      public void generateMethod(DataOutputStream out, ConstantPool cp) throws IOException {
062      }
063      /**
064       * @ast method 
065       * @aspect GenerateClassfile
066       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/GenerateClassfile.jrag:261
067       */
068      public void touchMethod(ConstantPool cp) {
069      }
070      /**
071       * @ast method 
072       * @aspect LookupParTypeDecl
073       * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Generics.jrag:1238
074       */
075      public BodyDecl substitutedBodyDecl(Parameterization parTypeDecl) {
076        throw new Error("Operation substitutedBodyDecl not supported for " + getClass().getName());
077      }
078      /**
079         * We must report illegal uses of the SafeVarargs annotation.
080         * It is only allowed on variable arity method and constructor declarations.
081         * @ast method 
082       * @aspect SafeVarargs
083       * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/SafeVarargs.jrag:93
084       */
085      public void checkWarnings() {
086                if (hasIllegalAnnotationSafeVarargs())
087                        error("@SafeVarargs is only allowed for variable " +
088                                "arity method and constructor declarations");
089        }
090      /**
091       * @ast method 
092       * 
093       */
094      public BodyDecl() {
095        super();
096    
097    
098      }
099      /**
100       * Initializes the child array to the correct size.
101       * Initializes List and Opt nta children.
102       * @apilevel internal
103       * @ast method
104       * @ast method 
105       * 
106       */
107      public void init$Children() {
108      }
109      /**
110       * @apilevel low-level
111       * @ast method 
112       * 
113       */
114      protected int numChildren() {
115        return 0;
116      }
117      /**
118       * @apilevel internal
119       * @ast method 
120       * 
121       */
122      public boolean mayHaveRewrite() {
123        return false;
124      }
125      protected java.util.Map isDAafter_Variable_values;
126      /**
127       * @attribute syn
128       * @aspect DA
129       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:243
130       */
131      @SuppressWarnings({"unchecked", "cast"})
132      public boolean isDAafter(Variable v) {
133        Object _parameters = v;
134        if(isDAafter_Variable_values == null) isDAafter_Variable_values = new java.util.HashMap(4);
135        if(isDAafter_Variable_values.containsKey(_parameters)) {
136          return ((Boolean)isDAafter_Variable_values.get(_parameters)).booleanValue();
137        }
138          ASTNode$State state = state();
139      int num = state.boundariesCrossed;
140      boolean isFinal = this.is$Final();
141        boolean isDAafter_Variable_value = isDAafter_compute(v);
142      if(isFinal && num == state().boundariesCrossed){ isDAafter_Variable_values.put(_parameters, Boolean.valueOf(isDAafter_Variable_value)); }
143            return isDAafter_Variable_value;
144      }
145      /**
146       * @apilevel internal
147       */
148      private boolean isDAafter_compute(Variable v) {  return true;  }
149      protected java.util.Map isDUafter_Variable_values;
150      /**
151       * @attribute syn
152       * @aspect DU
153       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:708
154       */
155      @SuppressWarnings({"unchecked", "cast"})
156      public boolean isDUafter(Variable v) {
157        Object _parameters = v;
158        if(isDUafter_Variable_values == null) isDUafter_Variable_values = new java.util.HashMap(4);
159        if(isDUafter_Variable_values.containsKey(_parameters)) {
160          return ((Boolean)isDUafter_Variable_values.get(_parameters)).booleanValue();
161        }
162          ASTNode$State state = state();
163      int num = state.boundariesCrossed;
164      boolean isFinal = this.is$Final();
165        boolean isDUafter_Variable_value = isDUafter_compute(v);
166      if(isFinal && num == state().boundariesCrossed){ isDUafter_Variable_values.put(_parameters, Boolean.valueOf(isDUafter_Variable_value)); }
167            return isDUafter_Variable_value;
168      }
169      /**
170       * @apilevel internal
171       */
172      private boolean isDUafter_compute(Variable v) {  return true;  }
173      /**
174       * @attribute syn
175       * @aspect TypeScopePropagation
176       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:479
177       */
178      public boolean declaresType(String name) {
179        ASTNode$State state = state();
180        try {  return false;  }
181        finally {
182        }
183      }
184      /**
185       * @attribute syn
186       * @aspect TypeScopePropagation
187       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:481
188       */
189      public TypeDecl type(String name) {
190        ASTNode$State state = state();
191        try {  return null;  }
192        finally {
193        }
194      }
195      /**
196       * @attribute syn
197       * @aspect PrettyPrint
198       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:758
199       */
200      public boolean addsIndentationLevel() {
201        ASTNode$State state = state();
202        try {  return true;  }
203        finally {
204        }
205      }
206      /**
207       * @attribute syn
208       * @aspect TypeAnalysis
209       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeAnalysis.jrag:271
210       */
211      public boolean isVoid() {
212        ASTNode$State state = state();
213        try {  return false;  }
214        finally {
215        }
216      }
217      /**
218       * @apilevel internal
219       */
220      protected boolean attributes_computed = false;
221      /**
222       * @apilevel internal
223       */
224      protected Collection attributes_value;
225      /**
226       * @attribute syn
227       * @aspect Attributes
228       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/Attributes.jrag:182
229       */
230      @SuppressWarnings({"unchecked", "cast"})
231      public Collection attributes() {
232        if(attributes_computed) {
233          return attributes_value;
234        }
235          ASTNode$State state = state();
236      int num = state.boundariesCrossed;
237      boolean isFinal = this.is$Final();
238        attributes_value = attributes_compute();
239      if(isFinal && num == state().boundariesCrossed){ attributes_computed = true; }
240            return attributes_value;
241      }
242      /**
243       * @apilevel internal
244       */
245      private Collection attributes_compute() {  return new ArrayList();  }
246      /**
247       * @attribute syn
248       * @aspect GenerateClassfile
249       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/GenerateClassfile.jrag:293
250       */
251      public boolean isBytecodeField() {
252        ASTNode$State state = state();
253        try {  return false;  }
254        finally {
255        }
256      }
257      /**
258       * @attribute syn
259       * @aspect GenerateClassfile
260       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/GenerateClassfile.jrag:296
261       */
262      public boolean isBytecodeMethod() {
263        ASTNode$State state = state();
264        try {  return false;  }
265        finally {
266        }
267      }
268      /**
269       * @attribute syn
270       * @aspect GenerateClassfile
271       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/GenerateClassfile.jrag:300
272       */
273      public boolean generate() {
274        ASTNode$State state = state();
275        try {  return true;  }
276        finally {
277        }
278      }
279      /**
280       * @attribute syn
281       * @aspect Annotations
282       * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Annotations.jrag:283
283       */
284      public boolean hasAnnotationSuppressWarnings(String s) {
285        ASTNode$State state = state();
286        try {  return false;  }
287        finally {
288        }
289      }
290      /**
291       * @attribute syn
292       * @aspect Annotations
293       * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Annotations.jrag:326
294       */
295      public boolean isDeprecated() {
296        ASTNode$State state = state();
297        try {  return false;  }
298        finally {
299        }
300      }
301      /**
302       * @attribute syn
303       * @aspect Enums
304       * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Enums.jrag:26
305       */
306      public boolean isEnumConstant() {
307        ASTNode$State state = state();
308        try {  return false;  }
309        finally {
310        }
311      }
312      /**
313       * @attribute syn
314       * @aspect GenericsParTypeDecl
315       * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/GenericsParTypeDecl.jrag:67
316       */
317      public boolean visibleTypeParameters() {
318        ASTNode$State state = state();
319        try {  return true;  }
320        finally {
321        }
322      }
323      /**
324       * @attribute syn
325       * @aspect GenericsCodegen
326       * @declaredat /home/jesper/svn/JastAddJ/Java1.5Backend/GenericsCodegen.jrag:362
327       */
328      public boolean needsSignatureAttribute() {
329        ASTNode$State state = state();
330        try {  return false;  }
331        finally {
332        }
333      }
334      /**
335        * @return true if the modifier list includes the SafeVarargs annotation
336        * @attribute syn
337       * @aspect SafeVarargs
338       * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/SafeVarargs.jrag:20
339       */
340      public boolean hasAnnotationSafeVarargs() {
341        ASTNode$State state = state();
342        try {  return false;  }
343        finally {
344        }
345      }
346      /**
347        * It is an error if the SafeVarargs annotation is used on something
348        * that is not a variable arity method or constructor.
349        * @attribute syn
350       * @aspect SafeVarargs
351       * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/SafeVarargs.jrag:56
352       */
353      public boolean hasIllegalAnnotationSafeVarargs() {
354        ASTNode$State state = state();
355        try {  return hasAnnotationSafeVarargs();  }
356        finally {
357        }
358      }
359      protected java.util.Map isDAbefore_Variable_values;
360      /**
361       * @attribute inh
362       * @aspect DA
363       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:242
364       */
365      @SuppressWarnings({"unchecked", "cast"})
366      public boolean isDAbefore(Variable v) {
367        Object _parameters = v;
368        if(isDAbefore_Variable_values == null) isDAbefore_Variable_values = new java.util.HashMap(4);
369        if(isDAbefore_Variable_values.containsKey(_parameters)) {
370          return ((Boolean)isDAbefore_Variable_values.get(_parameters)).booleanValue();
371        }
372          ASTNode$State state = state();
373      int num = state.boundariesCrossed;
374      boolean isFinal = this.is$Final();
375        boolean isDAbefore_Variable_value = getParent().Define_boolean_isDAbefore(this, null, v);
376      if(isFinal && num == state().boundariesCrossed){ isDAbefore_Variable_values.put(_parameters, Boolean.valueOf(isDAbefore_Variable_value)); }
377            return isDAbefore_Variable_value;
378      }
379      protected java.util.Map isDUbefore_Variable_values;
380      /**
381       * @attribute inh
382       * @aspect DU
383       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:707
384       */
385      @SuppressWarnings({"unchecked", "cast"})
386      public boolean isDUbefore(Variable v) {
387        Object _parameters = v;
388        if(isDUbefore_Variable_values == null) isDUbefore_Variable_values = new java.util.HashMap(4);
389        if(isDUbefore_Variable_values.containsKey(_parameters)) {
390          return ((Boolean)isDUbefore_Variable_values.get(_parameters)).booleanValue();
391        }
392          ASTNode$State state = state();
393      int num = state.boundariesCrossed;
394      boolean isFinal = this.is$Final();
395        boolean isDUbefore_Variable_value = getParent().Define_boolean_isDUbefore(this, null, v);
396      if(isFinal && num == state().boundariesCrossed){ isDUbefore_Variable_values.put(_parameters, Boolean.valueOf(isDUbefore_Variable_value)); }
397            return isDUbefore_Variable_value;
398      }
399      /**
400       * @apilevel internal
401       */
402      protected boolean typeThrowable_computed = false;
403      /**
404       * @apilevel internal
405       */
406      protected TypeDecl typeThrowable_value;
407      /**
408       * @attribute inh
409       * @aspect ExceptionHandling
410       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ExceptionHandling.jrag:22
411       */
412      @SuppressWarnings({"unchecked", "cast"})
413      public TypeDecl typeThrowable() {
414        if(typeThrowable_computed) {
415          return typeThrowable_value;
416        }
417          ASTNode$State state = state();
418      int num = state.boundariesCrossed;
419      boolean isFinal = this.is$Final();
420        typeThrowable_value = getParent().Define_TypeDecl_typeThrowable(this, null);
421      if(isFinal && num == state().boundariesCrossed){ typeThrowable_computed = true; }
422            return typeThrowable_value;
423      }
424      /**
425       * @attribute inh
426       * @aspect LookupMethod
427       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupMethod.jrag:25
428       */
429      @SuppressWarnings({"unchecked", "cast"})
430      public Collection lookupMethod(String name) {
431          ASTNode$State state = state();
432        Collection lookupMethod_String_value = getParent().Define_Collection_lookupMethod(this, null, name);
433            return lookupMethod_String_value;
434      }
435      /**
436       * @attribute inh
437       * @aspect LookupFullyQualifiedTypes
438       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:97
439       */
440      @SuppressWarnings({"unchecked", "cast"})
441      public TypeDecl lookupType(String packageName, String typeName) {
442          ASTNode$State state = state();
443        TypeDecl lookupType_String_String_value = getParent().Define_TypeDecl_lookupType(this, null, packageName, typeName);
444            return lookupType_String_String_value;
445      }
446      /**
447       * @attribute inh
448       * @aspect TypeScopePropagation
449       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:261
450       */
451      @SuppressWarnings({"unchecked", "cast"})
452      public SimpleSet lookupType(String name) {
453          ASTNode$State state = state();
454        SimpleSet lookupType_String_value = getParent().Define_SimpleSet_lookupType(this, null, name);
455            return lookupType_String_value;
456      }
457      protected java.util.Map lookupVariable_String_values;
458      /**
459       * @attribute inh
460       * @aspect VariableScope
461       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupVariable.jrag:15
462       */
463      @SuppressWarnings({"unchecked", "cast"})
464      public SimpleSet lookupVariable(String name) {
465        Object _parameters = name;
466        if(lookupVariable_String_values == null) lookupVariable_String_values = new java.util.HashMap(4);
467        if(lookupVariable_String_values.containsKey(_parameters)) {
468          return (SimpleSet)lookupVariable_String_values.get(_parameters);
469        }
470          ASTNode$State state = state();
471      int num = state.boundariesCrossed;
472      boolean isFinal = this.is$Final();
473        SimpleSet lookupVariable_String_value = getParent().Define_SimpleSet_lookupVariable(this, null, name);
474      if(isFinal && num == state().boundariesCrossed){ lookupVariable_String_values.put(_parameters, lookupVariable_String_value); }
475            return lookupVariable_String_value;
476      }
477      /**
478       * @attribute inh
479       * @aspect SyntacticClassification
480       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/SyntacticClassification.jrag:21
481       */
482      @SuppressWarnings({"unchecked", "cast"})
483      public NameType nameType() {
484          ASTNode$State state = state();
485        NameType nameType_value = getParent().Define_NameType_nameType(this, null);
486            return nameType_value;
487      }
488      /**
489       * @attribute inh
490       * @aspect NestedTypes
491       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeAnalysis.jrag:566
492       */
493      @SuppressWarnings({"unchecked", "cast"})
494      public String hostPackage() {
495          ASTNode$State state = state();
496        String hostPackage_value = getParent().Define_String_hostPackage(this, null);
497            return hostPackage_value;
498      }
499      /**
500       * @attribute inh
501       * @aspect NestedTypes
502       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeAnalysis.jrag:585
503       */
504      @SuppressWarnings({"unchecked", "cast"})
505      public TypeDecl hostType() {
506          ASTNode$State state = state();
507        TypeDecl hostType_value = getParent().Define_TypeDecl_hostType(this, null);
508            return hostType_value;
509      }
510      /**
511       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:353
512       * @apilevel internal
513       */
514      public String Define_String_typeDeclIndent(ASTNode caller, ASTNode child) {
515         {
516          int childIndex = this.getIndexOfChild(caller);
517          return indent();
518        }
519      }
520      /**
521       * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeAnalysis.jrag:514
522       * @apilevel internal
523       */
524      public BodyDecl Define_BodyDecl_enclosingBodyDecl(ASTNode caller, ASTNode child) {
525         {
526          int childIndex = this.getIndexOfChild(caller);
527          return this;
528        }
529      }
530      /**
531       * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/TryWithResources.jrag:153
532       * @apilevel internal
533       */
534      public boolean Define_boolean_resourcePreviouslyDeclared(ASTNode caller, ASTNode child, String name) {
535         {
536          int i = this.getIndexOfChild(caller);
537          return false;
538        }
539      }
540      /**
541       * @apilevel internal
542       */
543      public ASTNode rewriteTo() {
544        return super.rewriteTo();
545      }
546    }