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 * A parameter declaration as used in either method parameter lists 015 * or as a catch clause parameter. 016 * @production ParameterDeclaration : {@link ASTNode} ::= <span class="component">{@link Modifiers}</span> <span class="component">TypeAccess:{@link Access}</span> <span class="component"><ID:String></span>; 017 * @ast node 018 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/java.ast:91 019 */ 020 public class ParameterDeclaration extends ASTNode<ASTNode> implements Cloneable, SimpleSet, Iterator, Variable { 021 /** 022 * @apilevel low-level 023 */ 024 public void flushCache() { 025 } 026 /** 027 * @apilevel internal 028 */ 029 public void flushCollectionCache() { 030 } 031 /** 032 * @apilevel internal 033 */ 034 @SuppressWarnings({"unchecked", "cast"}) 035 public ParameterDeclaration clone() throws CloneNotSupportedException { 036 ParameterDeclaration node = (ParameterDeclaration)super.clone(); 037 node.type_computed = false; 038 node.type_value = null; 039 node.sourceVariableDecl_computed = false; 040 node.sourceVariableDecl_value = null; 041 node.throwTypes_computed = false; 042 node.throwTypes_value = null; 043 node.localNum_computed = false; 044 node.in$Circle(false); 045 node.is$Final(false); 046 return node; 047 } 048 /** 049 * @apilevel internal 050 */ 051 @SuppressWarnings({"unchecked", "cast"}) 052 public ParameterDeclaration copy() { 053 054 try { 055 ParameterDeclaration node = (ParameterDeclaration) clone(); 056 node.parent = null; 057 if(children != null) 058 node.children = (ASTNode[]) children.clone(); 059 060 return node; 061 } catch (CloneNotSupportedException e) { 062 throw new Error("Error: clone not supported for " + getClass().getName()); 063 } 064 065 }/** 066 * Create a deep copy of the AST subtree at this node. 067 * The copy is dangling, i.e. has no parent. 068 * @return dangling copy of the subtree at this node 069 * @apilevel low-level 070 */ 071 @SuppressWarnings({"unchecked", "cast"}) 072 public ParameterDeclaration fullCopy() { 073 074 ParameterDeclaration tree = (ParameterDeclaration) copy(); 075 if (children != null) { 076 for (int i = 0; i < children.length; ++i) { 077 078 ASTNode child = (ASTNode) children[i]; 079 if(child != null) { 080 child = child.fullCopy(); 081 tree.setChild(child, i); 082 } 083 } 084 } 085 return tree; 086 087 } /** 088 * @ast method 089 * @aspect DataStructures 090 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DataStructures.jrag:117 091 */ 092 public SimpleSet add(Object o) { 093 return new SimpleSetImpl().add(this).add(o); 094 } 095 /** 096 * @ast method 097 * @aspect DataStructures 098 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DataStructures.jrag:121 099 */ 100 public boolean isSingleton() { return true; } 101 /** 102 * @ast method 103 * @aspect DataStructures 104 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DataStructures.jrag:122 105 */ 106 public boolean isSingleton(Object o) { return contains(o); } 107 /** 108 * @ast method 109 * @aspect DataStructures 110 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DataStructures.jrag:125 111 */ 112 113 private ParameterDeclaration iterElem; 114 /** 115 * @ast method 116 * @aspect DataStructures 117 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DataStructures.jrag:126 118 */ 119 public Iterator iterator() { iterElem = this; return this; } 120 /** 121 * @ast method 122 * @aspect DataStructures 123 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DataStructures.jrag:127 124 */ 125 public boolean hasNext() { return iterElem != null; } 126 /** 127 * @ast method 128 * @aspect DataStructures 129 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DataStructures.jrag:128 130 */ 131 public Object next() { Object o = iterElem; iterElem = null; return o; } 132 /** 133 * @ast method 134 * @aspect DataStructures 135 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DataStructures.jrag:129 136 */ 137 public void remove() { throw new UnsupportedOperationException(); } 138 /** 139 * @ast method 140 * @aspect NodeConstructors 141 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/NodeConstructors.jrag:11 142 */ 143 public ParameterDeclaration(Access type, String name) { 144 this(new Modifiers(new List()), type, name); 145 } 146 /** 147 * @ast method 148 * @aspect NodeConstructors 149 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/NodeConstructors.jrag:14 150 */ 151 public ParameterDeclaration(TypeDecl type, String name) { 152 this(new Modifiers(new List()), type.createQualifiedAccess(), name); 153 } 154 /** 155 * @ast method 156 * @aspect PrettyPrint 157 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:233 158 */ 159 public void toString(StringBuffer s) { 160 getModifiers().toString(s); 161 getTypeAccess().toString(s); 162 s.append(" " + name()); 163 } 164 /** 165 * @ast method 166 * 167 */ 168 public ParameterDeclaration() { 169 super(); 170 171 172 } 173 /** 174 * Initializes the child array to the correct size. 175 * Initializes List and Opt nta children. 176 * @apilevel internal 177 * @ast method 178 * @ast method 179 * 180 */ 181 public void init$Children() { 182 children = new ASTNode[2]; 183 } 184 /** 185 * @ast method 186 * 187 */ 188 public ParameterDeclaration(Modifiers p0, Access p1, String p2) { 189 setChild(p0, 0); 190 setChild(p1, 1); 191 setID(p2); 192 } 193 /** 194 * @ast method 195 * 196 */ 197 public ParameterDeclaration(Modifiers p0, Access p1, beaver.Symbol p2) { 198 setChild(p0, 0); 199 setChild(p1, 1); 200 setID(p2); 201 } 202 /** 203 * @apilevel low-level 204 * @ast method 205 * 206 */ 207 protected int numChildren() { 208 return 2; 209 } 210 /** 211 * @apilevel internal 212 * @ast method 213 * 214 */ 215 public boolean mayHaveRewrite() { 216 return false; 217 } 218 /** 219 * Replaces the Modifiers child. 220 * @param node The new node to replace the Modifiers child. 221 * @apilevel high-level 222 * @ast method 223 * 224 */ 225 public void setModifiers(Modifiers node) { 226 setChild(node, 0); 227 } 228 /** 229 * Retrieves the Modifiers child. 230 * @return The current node used as the Modifiers child. 231 * @apilevel high-level 232 * @ast method 233 * 234 */ 235 public Modifiers getModifiers() { 236 return (Modifiers)getChild(0); 237 } 238 /** 239 * Retrieves the Modifiers child. 240 * <p><em>This method does not invoke AST transformations.</em></p> 241 * @return The current node used as the Modifiers child. 242 * @apilevel low-level 243 * @ast method 244 * 245 */ 246 public Modifiers getModifiersNoTransform() { 247 return (Modifiers)getChildNoTransform(0); 248 } 249 /** 250 * Replaces the TypeAccess child. 251 * @param node The new node to replace the TypeAccess child. 252 * @apilevel high-level 253 * @ast method 254 * 255 */ 256 public void setTypeAccess(Access node) { 257 setChild(node, 1); 258 } 259 /** 260 * Retrieves the TypeAccess child. 261 * @return The current node used as the TypeAccess child. 262 * @apilevel high-level 263 * @ast method 264 * 265 */ 266 public Access getTypeAccess() { 267 return (Access)getChild(1); 268 } 269 /** 270 * Retrieves the TypeAccess child. 271 * <p><em>This method does not invoke AST transformations.</em></p> 272 * @return The current node used as the TypeAccess child. 273 * @apilevel low-level 274 * @ast method 275 * 276 */ 277 public Access getTypeAccessNoTransform() { 278 return (Access)getChildNoTransform(1); 279 } 280 /** 281 * Replaces the lexeme ID. 282 * @param value The new value for the lexeme ID. 283 * @apilevel high-level 284 * @ast method 285 * 286 */ 287 public void setID(String value) { 288 tokenString_ID = value; 289 } 290 /** 291 * @apilevel internal 292 * @ast method 293 * 294 */ 295 296 /** 297 * @apilevel internal 298 */ 299 protected String tokenString_ID; 300 /** 301 * @ast method 302 * 303 */ 304 305 public int IDstart; 306 /** 307 * @ast method 308 * 309 */ 310 311 public int IDend; 312 /** 313 * JastAdd-internal setter for lexeme ID using the Beaver parser. 314 * @apilevel internal 315 * @ast method 316 * 317 */ 318 public void setID(beaver.Symbol symbol) { 319 if(symbol.value != null && !(symbol.value instanceof String)) 320 throw new UnsupportedOperationException("setID is only valid for String lexemes"); 321 tokenString_ID = (String)symbol.value; 322 IDstart = symbol.getStart(); 323 IDend = symbol.getEnd(); 324 } 325 /** 326 * Retrieves the value for the lexeme ID. 327 * @return The value for the lexeme ID. 328 * @apilevel high-level 329 * @ast method 330 * 331 */ 332 public String getID() { 333 return tokenString_ID != null ? tokenString_ID : ""; 334 } 335 /** 336 * @ast method 337 * @aspect MultiCatch 338 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/MultiCatch.jrag:214 339 */ 340 341 public void nameCheck() { 342 SimpleSet decls = outerScope().lookupVariable(name()); 343 for(Iterator iter = decls.iterator(); iter.hasNext(); ) { 344 Variable var = (Variable)iter.next(); 345 if(var instanceof VariableDeclaration) { 346 VariableDeclaration decl = (VariableDeclaration)var; 347 if (decl.enclosingBodyDecl() == enclosingBodyDecl()) 348 error("duplicate declaration of parameter " + name()); 349 } else if(var instanceof ParameterDeclaration) { 350 ParameterDeclaration decl = (ParameterDeclaration)var; 351 if(decl.enclosingBodyDecl() == enclosingBodyDecl()) 352 error("duplicate declaration of parameter " + name()); 353 } else if(var instanceof CatchParameterDeclaration) { 354 CatchParameterDeclaration decl = (CatchParameterDeclaration)var; 355 if(decl.enclosingBodyDecl() == enclosingBodyDecl()) 356 error("duplicate declaration of parameter " + name()); 357 } 358 } 359 360 // 8.4.1 361 if(!lookupVariable(name()).contains(this)) { 362 error("duplicate declaration of parameter " + name()); 363 } 364 } 365 /** 366 * @attribute syn 367 * @aspect DataStructures 368 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DataStructures.jrag:115 369 */ 370 public int size() { 371 ASTNode$State state = state(); 372 try { return 1; } 373 finally { 374 } 375 } 376 /** 377 * @attribute syn 378 * @aspect DataStructures 379 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DataStructures.jrag:116 380 */ 381 public boolean isEmpty() { 382 ASTNode$State state = state(); 383 try { return false; } 384 finally { 385 } 386 } 387 /** 388 * @attribute syn 389 * @aspect DataStructures 390 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DataStructures.jrag:120 391 */ 392 public boolean contains(Object o) { 393 ASTNode$State state = state(); 394 try { return this == o; } 395 finally { 396 } 397 } 398 /** 399 * @attribute syn 400 * @aspect Modifiers 401 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/Modifiers.jrag:220 402 */ 403 public boolean isSynthetic() { 404 ASTNode$State state = state(); 405 try { return getModifiers().isSynthetic(); } 406 finally { 407 } 408 } 409 /** 410 * @attribute syn 411 * @aspect PrettyPrint 412 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:800 413 */ 414 public String dumpString() { 415 ASTNode$State state = state(); 416 try { return getClass().getName() + " [" + getID() + "]"; } 417 finally { 418 } 419 } 420 /** 421 * @apilevel internal 422 */ 423 protected boolean type_computed = false; 424 /** 425 * @apilevel internal 426 */ 427 protected TypeDecl type_value; 428 /** 429 * @attribute syn 430 * @aspect TypeAnalysis 431 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeAnalysis.jrag:253 432 */ 433 @SuppressWarnings({"unchecked", "cast"}) 434 public TypeDecl type() { 435 if(type_computed) { 436 return type_value; 437 } 438 ASTNode$State state = state(); 439 int num = state.boundariesCrossed; 440 boolean isFinal = this.is$Final(); 441 type_value = type_compute(); 442 if(isFinal && num == state().boundariesCrossed){ type_computed = true; } 443 return type_value; 444 } 445 /** 446 * @apilevel internal 447 */ 448 private TypeDecl type_compute() { return getTypeAccess().type(); } 449 /** 450 * @attribute syn 451 * @aspect Variables 452 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:47 453 */ 454 public boolean isParameter() { 455 ASTNode$State state = state(); 456 try { return true; } 457 finally { 458 } 459 } 460 /** 461 * @attribute syn 462 * @aspect Variables 463 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:50 464 */ 465 public boolean isClassVariable() { 466 ASTNode$State state = state(); 467 try { return false; } 468 finally { 469 } 470 } 471 /** 472 * @attribute syn 473 * @aspect Variables 474 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:51 475 */ 476 public boolean isInstanceVariable() { 477 ASTNode$State state = state(); 478 try { return false; } 479 finally { 480 } 481 } 482 /** 483 * @attribute syn 484 * @aspect Variables 485 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:55 486 */ 487 public boolean isLocalVariable() { 488 ASTNode$State state = state(); 489 try { return false; } 490 finally { 491 } 492 } 493 /** 494 * @attribute syn 495 * @aspect Variables 496 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:73 497 */ 498 public boolean isFinal() { 499 ASTNode$State state = state(); 500 try { return getModifiers().isFinal(); } 501 finally { 502 } 503 } 504 /** 505 * @attribute syn 506 * @aspect Variables 507 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:74 508 */ 509 public boolean isVolatile() { 510 ASTNode$State state = state(); 511 try { return getModifiers().isVolatile(); } 512 finally { 513 } 514 } 515 /** 516 * @attribute syn 517 * @aspect Variables 518 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:75 519 */ 520 public boolean isBlank() { 521 ASTNode$State state = state(); 522 try { return true; } 523 finally { 524 } 525 } 526 /** 527 * @attribute syn 528 * @aspect Variables 529 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:76 530 */ 531 public boolean isStatic() { 532 ASTNode$State state = state(); 533 try { return false; } 534 finally { 535 } 536 } 537 /** 538 * @attribute syn 539 * @aspect Variables 540 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:78 541 */ 542 public String name() { 543 ASTNode$State state = state(); 544 try { return getID(); } 545 finally { 546 } 547 } 548 /** 549 * @attribute syn 550 * @aspect Variables 551 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:80 552 */ 553 public boolean hasInit() { 554 ASTNode$State state = state(); 555 try { return false; } 556 finally { 557 } 558 } 559 /** 560 * @attribute syn 561 * @aspect Variables 562 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:81 563 */ 564 public Expr getInit() { 565 ASTNode$State state = state(); 566 try { throw new UnsupportedOperationException(); } 567 finally { 568 } 569 } 570 /** 571 * @attribute syn 572 * @aspect Variables 573 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:82 574 */ 575 public Constant constant() { 576 ASTNode$State state = state(); 577 try { throw new UnsupportedOperationException(); } 578 finally { 579 } 580 } 581 /** 582 * @apilevel internal 583 */ 584 protected boolean sourceVariableDecl_computed = false; 585 /** 586 * @apilevel internal 587 */ 588 protected Variable sourceVariableDecl_value; 589 /** 590 * @attribute syn 591 * @aspect SourceDeclarations 592 * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Generics.jrag:1523 593 */ 594 @SuppressWarnings({"unchecked", "cast"}) 595 public Variable sourceVariableDecl() { 596 if(sourceVariableDecl_computed) { 597 return sourceVariableDecl_value; 598 } 599 ASTNode$State state = state(); 600 int num = state.boundariesCrossed; 601 boolean isFinal = this.is$Final(); 602 sourceVariableDecl_value = sourceVariableDecl_compute(); 603 if(isFinal && num == state().boundariesCrossed){ sourceVariableDecl_computed = true; } 604 return sourceVariableDecl_value; 605 } 606 /** 607 * @apilevel internal 608 */ 609 private Variable sourceVariableDecl_compute() { return this; } 610 /** 611 * @attribute syn 612 * @aspect VariableArityParameters 613 * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/VariableArityParameters.jrag:35 614 */ 615 public boolean isVariableArity() { 616 ASTNode$State state = state(); 617 try { return false; } 618 finally { 619 } 620 } 621 /** 622 * @apilevel internal 623 */ 624 protected boolean throwTypes_computed = false; 625 /** 626 * @apilevel internal 627 */ 628 protected Collection<TypeDecl> throwTypes_value; 629 /** 630 * @attribute syn 631 * @aspect PreciseRethrow 632 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/PreciseRethrow.jrag:27 633 */ 634 @SuppressWarnings({"unchecked", "cast"}) 635 public Collection<TypeDecl> throwTypes() { 636 if(throwTypes_computed) { 637 return throwTypes_value; 638 } 639 ASTNode$State state = state(); 640 int num = state.boundariesCrossed; 641 boolean isFinal = this.is$Final(); 642 throwTypes_value = throwTypes_compute(); 643 if(isFinal && num == state().boundariesCrossed){ throwTypes_computed = true; } 644 return throwTypes_value; 645 } 646 /** 647 * @apilevel internal 648 */ 649 private Collection<TypeDecl> throwTypes_compute() { 650 if (isCatchParam() && effectivelyFinal()) { 651 // the catch parameter must be final or implicitly 652 // final (multi-catch) 653 return catchClause().caughtExceptions(); 654 } else { 655 Collection<TypeDecl> tts = new LinkedList<TypeDecl>(); 656 tts.add(type()); 657 return tts; 658 } 659 } 660 /** 661 * @attribute syn 662 * @aspect PreciseRethrow 663 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/PreciseRethrow.jrag:41 664 */ 665 public boolean effectivelyFinal() { 666 ASTNode$State state = state(); 667 try { return isFinal() || !inhModifiedInScope(this); } 668 finally { 669 } 670 } 671 /** 672 * Builds a copy of this ParameterDeclaration node where all occurrences 673 * of type variables in the original type parameter list have been replaced 674 * by the substitution type parameters. 675 * 676 * @return the substituted ParameterDeclaration node 677 * @attribute syn 678 * @aspect TypeInference 679 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/TypeInference.jrag:391 680 */ 681 public ParameterDeclaration substituted(Collection<TypeVariable> original, List<TypeVariable> substitution) { 682 ASTNode$State state = state(); 683 try { return new ParameterDeclaration( 684 (Modifiers) getModifiers().cloneSubtree(), 685 getTypeAccess().substituted(original, substitution), 686 getID()); } 687 finally { 688 } 689 } 690 /** 691 * @attribute inh 692 * @aspect VariableScope 693 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupVariable.jrag:22 694 */ 695 @SuppressWarnings({"unchecked", "cast"}) 696 public SimpleSet lookupVariable(String name) { 697 ASTNode$State state = state(); 698 SimpleSet lookupVariable_String_value = getParent().Define_SimpleSet_lookupVariable(this, null, name); 699 return lookupVariable_String_value; 700 } 701 /** 702 * @attribute inh 703 * @aspect NameCheck 704 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/NameCheck.jrag:293 705 */ 706 @SuppressWarnings({"unchecked", "cast"}) 707 public VariableScope outerScope() { 708 ASTNode$State state = state(); 709 VariableScope outerScope_value = getParent().Define_VariableScope_outerScope(this, null); 710 return outerScope_value; 711 } 712 /** 713 * @attribute inh 714 * @aspect NameCheck 715 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/NameCheck.jrag:354 716 */ 717 @SuppressWarnings({"unchecked", "cast"}) 718 public BodyDecl enclosingBodyDecl() { 719 ASTNode$State state = state(); 720 BodyDecl enclosingBodyDecl_value = getParent().Define_BodyDecl_enclosingBodyDecl(this, null); 721 return enclosingBodyDecl_value; 722 } 723 /** 724 * @attribute inh 725 * @aspect NestedTypes 726 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeAnalysis.jrag:589 727 */ 728 @SuppressWarnings({"unchecked", "cast"}) 729 public TypeDecl hostType() { 730 ASTNode$State state = state(); 731 TypeDecl hostType_value = getParent().Define_TypeDecl_hostType(this, null); 732 return hostType_value; 733 } 734 /** 735 * @attribute inh 736 * @aspect Variables 737 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:52 738 */ 739 @SuppressWarnings({"unchecked", "cast"}) 740 public boolean isMethodParameter() { 741 ASTNode$State state = state(); 742 boolean isMethodParameter_value = getParent().Define_boolean_isMethodParameter(this, null); 743 return isMethodParameter_value; 744 } 745 /** 746 * @attribute inh 747 * @aspect Variables 748 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:53 749 */ 750 @SuppressWarnings({"unchecked", "cast"}) 751 public boolean isConstructorParameter() { 752 ASTNode$State state = state(); 753 boolean isConstructorParameter_value = getParent().Define_boolean_isConstructorParameter(this, null); 754 return isConstructorParameter_value; 755 } 756 /** 757 * @attribute inh 758 * @aspect Variables 759 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/VariableDeclaration.jrag:54 760 */ 761 @SuppressWarnings({"unchecked", "cast"}) 762 public boolean isExceptionHandlerParameter() { 763 ASTNode$State state = state(); 764 boolean isExceptionHandlerParameter_value = getParent().Define_boolean_isExceptionHandlerParameter(this, null); 765 return isExceptionHandlerParameter_value; 766 } 767 /** 768 * @apilevel internal 769 */ 770 protected boolean localNum_computed = false; 771 /** 772 * @apilevel internal 773 */ 774 protected int localNum_value; 775 /** 776 * @attribute inh 777 * @aspect LocalNum 778 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/LocalNum.jrag:13 779 */ 780 @SuppressWarnings({"unchecked", "cast"}) 781 public int localNum() { 782 if(localNum_computed) { 783 return localNum_value; 784 } 785 ASTNode$State state = state(); 786 int num = state.boundariesCrossed; 787 boolean isFinal = this.is$Final(); 788 localNum_value = getParent().Define_int_localNum(this, null); 789 if(isFinal && num == state().boundariesCrossed){ localNum_computed = true; } 790 return localNum_value; 791 } 792 /** 793 * @return true if the variable var is modified in the local scope 794 * @attribute inh 795 * @aspect PreciseRethrow 796 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/PreciseRethrow.jrag:47 797 */ 798 @SuppressWarnings({"unchecked", "cast"}) 799 public boolean inhModifiedInScope(Variable var) { 800 ASTNode$State state = state(); 801 boolean inhModifiedInScope_Variable_value = getParent().Define_boolean_inhModifiedInScope(this, null, var); 802 return inhModifiedInScope_Variable_value; 803 } 804 /** 805 * @return true if this is the parameter declaration of a catch clause 806 * @attribute inh 807 * @aspect PreciseRethrow 808 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/PreciseRethrow.jrag:121 809 */ 810 @SuppressWarnings({"unchecked", "cast"}) 811 public boolean isCatchParam() { 812 ASTNode$State state = state(); 813 boolean isCatchParam_value = getParent().Define_boolean_isCatchParam(this, null); 814 return isCatchParam_value; 815 } 816 /** 817 * @attribute inh 818 * @aspect PreciseRethrow 819 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/PreciseRethrow.jrag:127 820 */ 821 @SuppressWarnings({"unchecked", "cast"}) 822 public CatchClause catchClause() { 823 ASTNode$State state = state(); 824 CatchClause catchClause_value = getParent().Define_CatchClause_catchClause(this, null); 825 return catchClause_value; 826 } 827 /** 828 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/Modifiers.jrag:288 829 * @apilevel internal 830 */ 831 public boolean Define_boolean_mayBeFinal(ASTNode caller, ASTNode child) { 832 if(caller == getModifiersNoTransform()) { 833 return true; 834 } 835 else { return getParent().Define_boolean_mayBeFinal(this, caller); 836 } 837 } 838 /** 839 * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Annotations.jrag:83 840 * @apilevel internal 841 */ 842 public boolean Define_boolean_mayUseAnnotationTarget(ASTNode caller, ASTNode child, String name) { 843 if(caller == getModifiersNoTransform()) { 844 return name.equals("PARAMETER"); 845 } 846 else { return getParent().Define_boolean_mayUseAnnotationTarget(this, caller, name); 847 } 848 } 849 /** 850 * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Enums.jrag:79 851 * @apilevel internal 852 */ 853 public NameType Define_NameType_nameType(ASTNode caller, ASTNode child) { 854 if(caller == getTypeAccessNoTransform()) { 855 return NameType.TYPE_NAME; 856 } 857 else { return getParent().Define_NameType_nameType(this, caller); 858 } 859 } 860 /** 861 * @apilevel internal 862 */ 863 public ASTNode rewriteTo() { 864 return super.rewriteTo(); 865 } 866 }