001 /* This file was generated with JastAdd2 (http://jastadd.org) version 2.1.13-12-g880e696 */ 002 package org.extendj.ast; 003 004 import java.util.HashSet; 005 import java.io.File; 006 import java.util.Set; 007 import java.util.Collections; 008 import java.util.Collection; 009 import java.util.ArrayList; 010 import beaver.*; 011 import java.util.*; 012 import java.io.ByteArrayOutputStream; 013 import java.io.PrintStream; 014 import java.lang.reflect.InvocationTargetException; 015 import java.lang.reflect.Method; 016 import org.jastadd.util.*; 017 import java.util.zip.*; 018 import java.io.*; 019 import org.jastadd.util.PrettyPrintable; 020 import org.jastadd.util.PrettyPrinter; 021 import java.io.FileNotFoundException; 022 import java.io.BufferedInputStream; 023 import java.io.DataInputStream; 024 /** 025 * @ast node 026 * @declaredat /home/jesper/git/extendj/java5/grammar/Generics.ast:13 027 * @production BodyDeclList : {@link List}; 028 029 */ 030 public class BodyDeclList extends List implements Cloneable { 031 /** 032 * @declaredat ASTNode:1 033 */ 034 public BodyDeclList() { 035 super(); 036 } 037 /** 038 * Initializes the child array to the correct size. 039 * Initializes List and Opt nta children. 040 * @apilevel internal 041 * @ast method 042 * @declaredat ASTNode:10 043 */ 044 public void init$Children() { 045 } 046 /** 047 * @apilevel low-level 048 * @declaredat ASTNode:15 049 */ 050 protected int numChildren() { 051 return 0; 052 } 053 /** 054 * @apilevel internal 055 * @declaredat ASTNode:21 056 */ 057 public boolean mayHaveRewrite() { 058 return false; 059 } 060 /** 061 * @apilevel internal 062 * @declaredat ASTNode:27 063 */ 064 public void flushAttrCache() { 065 super.flushAttrCache(); 066 localMethodSignatureCopy_MethodDecl_MemberSubstitutor_reset(); 067 localFieldCopy_FieldDeclaration_MemberSubstitutor_reset(); 068 localClassDeclCopy_ClassDecl_MemberSubstitutor_reset(); 069 localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_reset(); 070 constructorCopy_ConstructorDecl_MemberSubstitutor_reset(); 071 } 072 /** 073 * @apilevel internal 074 * @declaredat ASTNode:38 075 */ 076 public void flushCollectionCache() { 077 super.flushCollectionCache(); 078 } 079 /** 080 * @apilevel internal 081 * @declaredat ASTNode:44 082 */ 083 public void flushRewriteCache() { 084 super.flushRewriteCache(); 085 } 086 /** 087 * @apilevel internal 088 * @declaredat ASTNode:50 089 */ 090 public BodyDeclList clone() throws CloneNotSupportedException { 091 BodyDeclList node = (BodyDeclList) super.clone(); 092 return node; 093 } 094 /** 095 * @apilevel internal 096 * @declaredat ASTNode:57 097 */ 098 public BodyDeclList copy() { 099 try { 100 BodyDeclList node = (BodyDeclList) clone(); 101 node.parent = null; 102 if (children != null) { 103 node.children = (ASTNode[]) children.clone(); 104 } 105 return node; 106 } catch (CloneNotSupportedException e) { 107 throw new Error("Error: clone not supported for " + getClass().getName()); 108 } 109 } 110 /** 111 * Create a deep copy of the AST subtree at this node. 112 * The copy is dangling, i.e. has no parent. 113 * @return dangling copy of the subtree at this node 114 * @apilevel low-level 115 * @deprecated Please use treeCopy or treeCopyNoTransform instead 116 * @declaredat ASTNode:76 117 */ 118 @Deprecated 119 public BodyDeclList fullCopy() { 120 return treeCopyNoTransform(); 121 } 122 /** 123 * Create a deep copy of the AST subtree at this node. 124 * The copy is dangling, i.e. has no parent. 125 * @return dangling copy of the subtree at this node 126 * @apilevel low-level 127 * @declaredat ASTNode:86 128 */ 129 public BodyDeclList treeCopyNoTransform() { 130 BodyDeclList tree = (BodyDeclList) copy(); 131 if (children != null) { 132 for (int i = 0; i < children.length; ++i) { 133 ASTNode child = (ASTNode) children[i]; 134 if (child != null) { 135 child = child.treeCopyNoTransform(); 136 tree.setChild(child, i); 137 } 138 } 139 } 140 return tree; 141 } 142 /** 143 * Create a deep copy of the AST subtree at this node. 144 * The subtree of this node is traversed to trigger rewrites before copy. 145 * The copy is dangling, i.e. has no parent. 146 * @return dangling copy of the subtree at this node 147 * @apilevel low-level 148 * @declaredat ASTNode:106 149 */ 150 public BodyDeclList treeCopy() { 151 doFullTraversal(); 152 return treeCopyNoTransform(); 153 } 154 /** 155 * @apilevel internal 156 * @declaredat ASTNode:113 157 */ 158 protected boolean is$Equal(ASTNode node) { 159 return super.is$Equal(node); 160 } 161 /** 162 * @apilevel internal 163 */ 164 protected List localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list; 165 /** 166 * @apilevel internal 167 */ 168 protected java.util.Map localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values; 169 /** 170 * @apilevel internal 171 */ 172 private void localMethodSignatureCopy_MethodDecl_MemberSubstitutor_reset() { 173 localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values = null; 174 localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list = null; 175 } 176 /** 177 * @attribute syn 178 * @aspect LookupParTypeDecl 179 * @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1293 180 */ 181 @ASTNodeAnnotation.Attribute 182 public BodyDecl localMethodSignatureCopy(MethodDecl originalMethod, MemberSubstitutor m) { 183 java.util.List _parameters = new java.util.ArrayList(2); 184 _parameters.add(originalMethod); 185 _parameters.add(m); 186 if (localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values == null) localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values = new org.jastadd.util.RobustMap(new java.util.HashMap()); 187 ASTNode$State state = state(); 188 if (localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values.containsKey(_parameters)) { 189 return (BodyDecl) localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values.get(_parameters); 190 } 191 boolean intermediate = state.INTERMEDIATE_VALUE; 192 state.INTERMEDIATE_VALUE = false; 193 int num = state.boundariesCrossed; 194 boolean isFinal = this.is$Final(); 195 BodyDecl localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value = originalMethod.substitutedBodyDecl(m); 196 if (localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list == null) { 197 localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list = new List(); 198 localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list.is$Final = true; 199 localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list.setParent(this); 200 } 201 localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list.add(localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value); 202 if (localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value != null) { 203 localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value = (BodyDecl) localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list.getChild(localMethodSignatureCopy_MethodDecl_MemberSubstitutor_list.numChildren-1); 204 localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value.is$Final = true; 205 } 206 if (true) { 207 localMethodSignatureCopy_MethodDecl_MemberSubstitutor_values.put(_parameters, localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value); 208 } else { 209 } 210 state.INTERMEDIATE_VALUE |= intermediate; 211 212 return localMethodSignatureCopy_MethodDecl_MemberSubstitutor_value; 213 } 214 /** 215 * @apilevel internal 216 */ 217 protected List localFieldCopy_FieldDeclaration_MemberSubstitutor_list; 218 /** 219 * @apilevel internal 220 */ 221 protected java.util.Map localFieldCopy_FieldDeclaration_MemberSubstitutor_values; 222 /** 223 * @apilevel internal 224 */ 225 private void localFieldCopy_FieldDeclaration_MemberSubstitutor_reset() { 226 localFieldCopy_FieldDeclaration_MemberSubstitutor_values = null; 227 localFieldCopy_FieldDeclaration_MemberSubstitutor_list = null; 228 } 229 /** 230 * @attribute syn 231 * @aspect LookupParTypeDecl 232 * @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1311 233 */ 234 @ASTNodeAnnotation.Attribute 235 public BodyDecl localFieldCopy(FieldDeclaration originalDecl, MemberSubstitutor m) { 236 java.util.List _parameters = new java.util.ArrayList(2); 237 _parameters.add(originalDecl); 238 _parameters.add(m); 239 if (localFieldCopy_FieldDeclaration_MemberSubstitutor_values == null) localFieldCopy_FieldDeclaration_MemberSubstitutor_values = new org.jastadd.util.RobustMap(new java.util.HashMap()); 240 ASTNode$State state = state(); 241 if (localFieldCopy_FieldDeclaration_MemberSubstitutor_values.containsKey(_parameters)) { 242 return (BodyDecl) localFieldCopy_FieldDeclaration_MemberSubstitutor_values.get(_parameters); 243 } 244 boolean intermediate = state.INTERMEDIATE_VALUE; 245 state.INTERMEDIATE_VALUE = false; 246 int num = state.boundariesCrossed; 247 boolean isFinal = this.is$Final(); 248 BodyDecl localFieldCopy_FieldDeclaration_MemberSubstitutor_value = originalDecl.substitutedBodyDecl(m); 249 if (localFieldCopy_FieldDeclaration_MemberSubstitutor_list == null) { 250 localFieldCopy_FieldDeclaration_MemberSubstitutor_list = new List(); 251 localFieldCopy_FieldDeclaration_MemberSubstitutor_list.is$Final = true; 252 localFieldCopy_FieldDeclaration_MemberSubstitutor_list.setParent(this); 253 } 254 localFieldCopy_FieldDeclaration_MemberSubstitutor_list.add(localFieldCopy_FieldDeclaration_MemberSubstitutor_value); 255 if (localFieldCopy_FieldDeclaration_MemberSubstitutor_value != null) { 256 localFieldCopy_FieldDeclaration_MemberSubstitutor_value = (BodyDecl) localFieldCopy_FieldDeclaration_MemberSubstitutor_list.getChild(localFieldCopy_FieldDeclaration_MemberSubstitutor_list.numChildren-1); 257 localFieldCopy_FieldDeclaration_MemberSubstitutor_value.is$Final = true; 258 } 259 if (true) { 260 localFieldCopy_FieldDeclaration_MemberSubstitutor_values.put(_parameters, localFieldCopy_FieldDeclaration_MemberSubstitutor_value); 261 } else { 262 } 263 state.INTERMEDIATE_VALUE |= intermediate; 264 265 return localFieldCopy_FieldDeclaration_MemberSubstitutor_value; 266 } 267 /** 268 * @apilevel internal 269 */ 270 protected List localClassDeclCopy_ClassDecl_MemberSubstitutor_list; 271 /** 272 * @apilevel internal 273 */ 274 protected java.util.Map localClassDeclCopy_ClassDecl_MemberSubstitutor_values; 275 /** 276 * @apilevel internal 277 */ 278 private void localClassDeclCopy_ClassDecl_MemberSubstitutor_reset() { 279 localClassDeclCopy_ClassDecl_MemberSubstitutor_values = null; 280 localClassDeclCopy_ClassDecl_MemberSubstitutor_list = null; 281 } 282 /** 283 * @attribute syn 284 * @aspect LookupParTypeDecl 285 * @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1336 286 */ 287 @ASTNodeAnnotation.Attribute 288 public MemberClassDecl localClassDeclCopy(ClassDecl originalDecl, MemberSubstitutor m) { 289 java.util.List _parameters = new java.util.ArrayList(2); 290 _parameters.add(originalDecl); 291 _parameters.add(m); 292 if (localClassDeclCopy_ClassDecl_MemberSubstitutor_values == null) localClassDeclCopy_ClassDecl_MemberSubstitutor_values = new org.jastadd.util.RobustMap(new java.util.HashMap()); 293 ASTNode$State state = state(); 294 if (localClassDeclCopy_ClassDecl_MemberSubstitutor_values.containsKey(_parameters)) { 295 return (MemberClassDecl) localClassDeclCopy_ClassDecl_MemberSubstitutor_values.get(_parameters); 296 } 297 boolean intermediate = state.INTERMEDIATE_VALUE; 298 state.INTERMEDIATE_VALUE = false; 299 int num = state.boundariesCrossed; 300 boolean isFinal = this.is$Final(); 301 MemberClassDecl localClassDeclCopy_ClassDecl_MemberSubstitutor_value = localClassDeclCopy_compute(originalDecl, m); 302 if (localClassDeclCopy_ClassDecl_MemberSubstitutor_list == null) { 303 localClassDeclCopy_ClassDecl_MemberSubstitutor_list = new List(); 304 localClassDeclCopy_ClassDecl_MemberSubstitutor_list.is$Final = true; 305 localClassDeclCopy_ClassDecl_MemberSubstitutor_list.setParent(this); 306 } 307 localClassDeclCopy_ClassDecl_MemberSubstitutor_list.add(localClassDeclCopy_ClassDecl_MemberSubstitutor_value); 308 if (localClassDeclCopy_ClassDecl_MemberSubstitutor_value != null) { 309 localClassDeclCopy_ClassDecl_MemberSubstitutor_value = (MemberClassDecl) localClassDeclCopy_ClassDecl_MemberSubstitutor_list.getChild(localClassDeclCopy_ClassDecl_MemberSubstitutor_list.numChildren-1); 310 localClassDeclCopy_ClassDecl_MemberSubstitutor_value.is$Final = true; 311 } 312 if (true) { 313 localClassDeclCopy_ClassDecl_MemberSubstitutor_values.put(_parameters, localClassDeclCopy_ClassDecl_MemberSubstitutor_value); 314 } else { 315 } 316 state.INTERMEDIATE_VALUE |= intermediate; 317 318 return localClassDeclCopy_ClassDecl_MemberSubstitutor_value; 319 } 320 /** 321 * @apilevel internal 322 */ 323 private MemberClassDecl localClassDeclCopy_compute(ClassDecl originalDecl, MemberSubstitutor m) { 324 ClassDecl copy = originalDecl.substitutedClassDecl(m); 325 return new MemberClassDecl(copy); 326 } 327 /** 328 * @apilevel internal 329 */ 330 protected List localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list; 331 /** 332 * @apilevel internal 333 */ 334 protected java.util.Map localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values; 335 /** 336 * @apilevel internal 337 */ 338 private void localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_reset() { 339 localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values = null; 340 localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list = null; 341 } 342 /** 343 * @attribute syn 344 * @aspect LookupParTypeDecl 345 * @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1341 346 */ 347 @ASTNodeAnnotation.Attribute 348 public MemberInterfaceDecl localInterfaceDeclCopy(InterfaceDecl originalDecl, MemberSubstitutor m) { 349 java.util.List _parameters = new java.util.ArrayList(2); 350 _parameters.add(originalDecl); 351 _parameters.add(m); 352 if (localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values == null) localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values = new org.jastadd.util.RobustMap(new java.util.HashMap()); 353 ASTNode$State state = state(); 354 if (localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values.containsKey(_parameters)) { 355 return (MemberInterfaceDecl) localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values.get(_parameters); 356 } 357 boolean intermediate = state.INTERMEDIATE_VALUE; 358 state.INTERMEDIATE_VALUE = false; 359 int num = state.boundariesCrossed; 360 boolean isFinal = this.is$Final(); 361 MemberInterfaceDecl localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value = localInterfaceDeclCopy_compute(originalDecl, m); 362 if (localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list == null) { 363 localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list = new List(); 364 localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list.is$Final = true; 365 localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list.setParent(this); 366 } 367 localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list.add(localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value); 368 if (localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value != null) { 369 localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value = (MemberInterfaceDecl) localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list.getChild(localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_list.numChildren-1); 370 localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value.is$Final = true; 371 } 372 if (true) { 373 localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_values.put(_parameters, localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value); 374 } else { 375 } 376 state.INTERMEDIATE_VALUE |= intermediate; 377 378 return localInterfaceDeclCopy_InterfaceDecl_MemberSubstitutor_value; 379 } 380 /** 381 * @apilevel internal 382 */ 383 private MemberInterfaceDecl localInterfaceDeclCopy_compute(InterfaceDecl originalDecl, MemberSubstitutor m) { 384 InterfaceDecl copy = originalDecl.substitutedInterfaceDecl(m); 385 return new MemberInterfaceDecl(copy); 386 } 387 /** 388 * @apilevel internal 389 */ 390 protected List constructorCopy_ConstructorDecl_MemberSubstitutor_list; 391 /** 392 * @apilevel internal 393 */ 394 protected java.util.Map constructorCopy_ConstructorDecl_MemberSubstitutor_values; 395 /** 396 * @apilevel internal 397 */ 398 private void constructorCopy_ConstructorDecl_MemberSubstitutor_reset() { 399 constructorCopy_ConstructorDecl_MemberSubstitutor_values = null; 400 constructorCopy_ConstructorDecl_MemberSubstitutor_list = null; 401 } 402 /** 403 * @attribute syn 404 * @aspect LookupParTypeDecl 405 * @declaredat /home/jesper/git/extendj/java5/frontend/Generics.jrag:1358 406 */ 407 @ASTNodeAnnotation.Attribute 408 public ConstructorDecl constructorCopy(ConstructorDecl originalDecl, MemberSubstitutor m) { 409 java.util.List _parameters = new java.util.ArrayList(2); 410 _parameters.add(originalDecl); 411 _parameters.add(m); 412 if (constructorCopy_ConstructorDecl_MemberSubstitutor_values == null) constructorCopy_ConstructorDecl_MemberSubstitutor_values = new org.jastadd.util.RobustMap(new java.util.HashMap()); 413 ASTNode$State state = state(); 414 if (constructorCopy_ConstructorDecl_MemberSubstitutor_values.containsKey(_parameters)) { 415 return (ConstructorDecl) constructorCopy_ConstructorDecl_MemberSubstitutor_values.get(_parameters); 416 } 417 boolean intermediate = state.INTERMEDIATE_VALUE; 418 state.INTERMEDIATE_VALUE = false; 419 int num = state.boundariesCrossed; 420 boolean isFinal = this.is$Final(); 421 ConstructorDecl constructorCopy_ConstructorDecl_MemberSubstitutor_value = originalDecl.substitutedBodyDecl(m); 422 if (constructorCopy_ConstructorDecl_MemberSubstitutor_list == null) { 423 constructorCopy_ConstructorDecl_MemberSubstitutor_list = new List(); 424 constructorCopy_ConstructorDecl_MemberSubstitutor_list.is$Final = true; 425 constructorCopy_ConstructorDecl_MemberSubstitutor_list.setParent(this); 426 } 427 constructorCopy_ConstructorDecl_MemberSubstitutor_list.add(constructorCopy_ConstructorDecl_MemberSubstitutor_value); 428 if (constructorCopy_ConstructorDecl_MemberSubstitutor_value != null) { 429 constructorCopy_ConstructorDecl_MemberSubstitutor_value = (ConstructorDecl) constructorCopy_ConstructorDecl_MemberSubstitutor_list.getChild(constructorCopy_ConstructorDecl_MemberSubstitutor_list.numChildren-1); 430 constructorCopy_ConstructorDecl_MemberSubstitutor_value.is$Final = true; 431 } 432 if (true) { 433 constructorCopy_ConstructorDecl_MemberSubstitutor_values.put(_parameters, constructorCopy_ConstructorDecl_MemberSubstitutor_value); 434 } else { 435 } 436 state.INTERMEDIATE_VALUE |= intermediate; 437 438 return constructorCopy_ConstructorDecl_MemberSubstitutor_value; 439 } 440 /** 441 * @apilevel internal 442 */ 443 public ASTNode rewriteTo() { 444 return super.rewriteTo(); 445 } 446 }