1 /* 2 * Copyright (C) 2007-2010 Jlio Vilmar Gesser. 3 * Copyright (C) 2011, 2013-2015 The JavaParser Team. 4 * 5 * This file is part of JavaParser. 6 * 7 * JavaParser can be used either under the terms of 8 * a) the GNU Lesser General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * b) the terms of the Apache License 12 * 13 * You should have received a copy of both licenses in LICENCE.LGPL and 14 * LICENCE.APACHE. Please refer to those files for details. 15 * 16 * JavaParser is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU Lesser General Public License for more details. 20 */ 21 22 package com.github.javaparser.ast.visitor; 23 24 import com.github.javaparser.ast.comments.BlockComment; 25 import com.github.javaparser.ast.CompilationUnit; 26 import com.github.javaparser.ast.ImportDeclaration; 27 import com.github.javaparser.ast.comments.LineComment; 28 import com.github.javaparser.ast.PackageDeclaration; 29 import com.github.javaparser.ast.TypeParameter; 30 import com.github.javaparser.ast.body.AnnotationDeclaration; 31 import com.github.javaparser.ast.body.AnnotationMemberDeclaration; 32 import com.github.javaparser.ast.body.BodyDeclaration; 33 import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; 34 import com.github.javaparser.ast.body.ConstructorDeclaration; 35 import com.github.javaparser.ast.body.EmptyMemberDeclaration; 36 import com.github.javaparser.ast.body.EmptyTypeDeclaration; 37 import com.github.javaparser.ast.body.EnumConstantDeclaration; 38 import com.github.javaparser.ast.body.EnumDeclaration; 39 import com.github.javaparser.ast.body.FieldDeclaration; 40 import com.github.javaparser.ast.body.InitializerDeclaration; 41 import com.github.javaparser.ast.comments.JavadocComment; 42 import com.github.javaparser.ast.body.MethodDeclaration; 43 import com.github.javaparser.ast.body.MultiTypeParameter; 44 import com.github.javaparser.ast.body.Parameter; 45 import com.github.javaparser.ast.body.TypeDeclaration; 46 import com.github.javaparser.ast.body.VariableDeclarator; 47 import com.github.javaparser.ast.body.VariableDeclaratorId; 48 import com.github.javaparser.ast.expr.*; 49 import com.github.javaparser.ast.stmt.AssertStmt; 50 import com.github.javaparser.ast.stmt.BlockStmt; 51 import com.github.javaparser.ast.stmt.BreakStmt; 52 import com.github.javaparser.ast.stmt.CatchClause; 53 import com.github.javaparser.ast.stmt.ContinueStmt; 54 import com.github.javaparser.ast.stmt.DoStmt; 55 import com.github.javaparser.ast.stmt.EmptyStmt; 56 import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt; 57 import com.github.javaparser.ast.stmt.ExpressionStmt; 58 import com.github.javaparser.ast.stmt.ForStmt; 59 import com.github.javaparser.ast.stmt.ForeachStmt; 60 import com.github.javaparser.ast.stmt.IfStmt; 61 import com.github.javaparser.ast.stmt.LabeledStmt; 62 import com.github.javaparser.ast.stmt.ReturnStmt; 63 import com.github.javaparser.ast.stmt.Statement; 64 import com.github.javaparser.ast.stmt.SwitchEntryStmt; 65 import com.github.javaparser.ast.stmt.SwitchStmt; 66 import com.github.javaparser.ast.stmt.SynchronizedStmt; 67 import com.github.javaparser.ast.stmt.ThrowStmt; 68 import com.github.javaparser.ast.stmt.TryStmt; 69 import com.github.javaparser.ast.stmt.TypeDeclarationStmt; 70 import com.github.javaparser.ast.stmt.WhileStmt; 71 import com.github.javaparser.ast.type.*; 72 73 /** 74 * @author Julio Vilmar Gesser 75 */ 76 public abstract class GenericVisitorAdapter<R, A> implements GenericVisitor<R, A> { 77 78 @Override 79 public R visit(final AnnotationDeclaration n, final A arg) { 80 if (n.getJavaDoc() != null) { 81 { 82 R result = n.getJavaDoc().accept(this, arg); 83 if (result != null) { 84 return result; 85 } 86 } 87 } 88 if (n.getAnnotations() != null) { 89 for (final AnnotationExpr a : n.getAnnotations()) { 90 { 91 R result = a.accept(this, arg); 92 if (result != null) { 93 return result; 94 } 95 } 96 } 97 } 98 if (n.getMembers() != null) { 99 for (final BodyDeclaration member : n.getMembers()) { 100 { 101 R result = member.accept(this, arg); 102 if (result != null) { 103 return result; 104 } 105 } 106 } 107 } 108 return null; 109 } 110 111 @Override 112 public R visit(final AnnotationMemberDeclaration n, final A arg) { 113 if (n.getJavaDoc() != null) { 114 { 115 R result = n.getJavaDoc().accept(this, arg); 116 if (result != null) { 117 return result; 118 } 119 } 120 } 121 if (n.getAnnotations() != null) { 122 for (final AnnotationExpr a : n.getAnnotations()) { 123 { 124 R result = a.accept(this, arg); 125 if (result != null) { 126 return result; 127 } 128 } 129 } 130 } 131 { 132 R result = n.getType().accept(this, arg); 133 if (result != null) { 134 return result; 135 } 136 } 137 if (n.getDefaultValue() != null) { 138 { 139 R result = n.getDefaultValue().accept(this, arg); 140 if (result != null) { 141 return result; 142 } 143 } 144 } 145 return null; 146 } 147 148 @Override 149 public R visit(final ArrayAccessExpr n, final A arg) { 150 { 151 R result = n.getName().accept(this, arg); 152 if (result != null) { 153 return result; 154 } 155 } 156 { 157 R result = n.getIndex().accept(this, arg); 158 if (result != null) { 159 return result; 160 } 161 } 162 return null; 163 } 164 165 @Override 166 public R visit(final ArrayCreationExpr n, final A arg) { 167 { 168 R result = n.getType().accept(this, arg); 169 if (result != null) { 170 return result; 171 } 172 } 173 if (n.getDimensions() != null) { 174 for (final Expression dim : n.getDimensions()) { 175 { 176 R result = dim.accept(this, arg); 177 if (result != null) { 178 return result; 179 } 180 } 181 } 182 } else { 183 { 184 R result = n.getInitializer().accept(this, arg); 185 if (result != null) { 186 return result; 187 } 188 } 189 } 190 return null; 191 } 192 193 @Override 194 public R visit(final ArrayInitializerExpr n, final A arg) { 195 if (n.getValues() != null) { 196 for (final Expression expr : n.getValues()) { 197 { 198 R result = expr.accept(this, arg); 199 if (result != null) { 200 return result; 201 } 202 } 203 } 204 } 205 return null; 206 } 207 208 @Override 209 public R visit(final AssertStmt n, final A arg) { 210 { 211 R result = n.getCheck().accept(this, arg); 212 if (result != null) { 213 return result; 214 } 215 } 216 if (n.getMessage() != null) { 217 { 218 R result = n.getMessage().accept(this, arg); 219 if (result != null) { 220 return result; 221 } 222 } 223 } 224 return null; 225 } 226 227 @Override 228 public R visit(final AssignExpr n, final A arg) { 229 { 230 R result = n.getTarget().accept(this, arg); 231 if (result != null) { 232 return result; 233 } 234 } 235 { 236 R result = n.getValue().accept(this, arg); 237 if (result != null) { 238 return result; 239 } 240 } 241 return null; 242 } 243 244 @Override 245 public R visit(final BinaryExpr n, final A arg) { 246 { 247 R result = n.getLeft().accept(this, arg); 248 if (result != null) { 249 return result; 250 } 251 } 252 { 253 R result = n.getRight().accept(this, arg); 254 if (result != null) { 255 return result; 256 } 257 } 258 return null; 259 } 260 261 @Override 262 public R visit(final BlockStmt n, final A arg) { 263 if (n.getStmts() != null) { 264 for (final Statement s : n.getStmts()) { 265 { 266 R result = s.accept(this, arg); 267 if (result != null) { 268 return result; 269 } 270 } 271 } 272 } 273 return null; 274 275 } 276 277 @Override 278 public R visit(final BooleanLiteralExpr n, final A arg) { 279 return null; 280 } 281 282 @Override 283 public R visit(final BreakStmt n, final A arg) { 284 return null; 285 } 286 287 @Override 288 public R visit(final CastExpr n, final A arg) { 289 { 290 R result = n.getType().accept(this, arg); 291 if (result != null) { 292 return result; 293 } 294 } 295 { 296 R result = n.getExpr().accept(this, arg); 297 if (result != null) { 298 return result; 299 } 300 } 301 return null; 302 } 303 304 @Override 305 public R visit(final CatchClause n, final A arg) { 306 { 307 R result = n.getExcept().accept(this, arg); 308 if (result != null) { 309 return result; 310 } 311 } 312 { 313 R result = n.getCatchBlock().accept(this, arg); 314 if (result != null) { 315 return result; 316 } 317 } 318 return null; 319 320 } 321 322 @Override 323 public R visit(final CharLiteralExpr n, final A arg) { 324 return null; 325 } 326 327 @Override 328 public R visit(final ClassExpr n, final A arg) { 329 { 330 R result = n.getType().accept(this, arg); 331 if (result != null) { 332 return result; 333 } 334 } 335 return null; 336 } 337 338 @Override 339 public R visit(final ClassOrInterfaceDeclaration n, final A arg) { 340 if (n.getJavaDoc() != null) { 341 { 342 R result = n.getJavaDoc().accept(this, arg); 343 if (result != null) { 344 return result; 345 } 346 } 347 } 348 if (n.getAnnotations() != null) { 349 for (final AnnotationExpr a : n.getAnnotations()) { 350 { 351 R result = a.accept(this, arg); 352 if (result != null) { 353 return result; 354 } 355 } 356 } 357 } 358 if (n.getTypeParameters() != null) { 359 for (final TypeParameter t : n.getTypeParameters()) { 360 { 361 R result = t.accept(this, arg); 362 if (result != null) { 363 return result; 364 } 365 } 366 } 367 } 368 if (n.getExtends() != null) { 369 for (final ClassOrInterfaceType c : n.getExtends()) { 370 { 371 R result = c.accept(this, arg); 372 if (result != null) { 373 return result; 374 } 375 } 376 } 377 } 378 379 if (n.getImplements() != null) { 380 for (final ClassOrInterfaceType c : n.getImplements()) { 381 { 382 R result = c.accept(this, arg); 383 if (result != null) { 384 return result; 385 } 386 } 387 } 388 } 389 if (n.getMembers() != null) { 390 for (final BodyDeclaration member : n.getMembers()) { 391 { 392 R result = member.accept(this, arg); 393 if (result != null) { 394 return result; 395 } 396 } 397 } 398 } 399 return null; 400 } 401 402 @Override 403 public R visit(final ClassOrInterfaceType n, final A arg) { 404 if (n.getScope() != null) { 405 { 406 R result = n.getScope().accept(this, arg); 407 if (result != null) { 408 return result; 409 } 410 } 411 } 412 if (n.getTypeArgs() != null) { 413 for (final Type t : n.getTypeArgs()) { 414 { 415 R result = t.accept(this, arg); 416 if (result != null) { 417 return result; 418 } 419 } 420 } 421 } 422 return null; 423 } 424 425 @Override 426 public R visit(final CompilationUnit n, final A arg) { 427 if (n.getPackage() != null) { 428 { 429 R result = n.getPackage().accept(this, arg); 430 if (result != null) { 431 return result; 432 } 433 } 434 } 435 if (n.getImports() != null) { 436 for (final ImportDeclaration i : n.getImports()) { 437 { 438 R result = i.accept(this, arg); 439 if (result != null) { 440 return result; 441 } 442 } 443 } 444 } 445 if (n.getTypes() != null) { 446 for (final TypeDeclaration typeDeclaration : n.getTypes()) { 447 { 448 R result = typeDeclaration.accept(this, arg); 449 if (result != null) { 450 return result; 451 } 452 } 453 } 454 } 455 return null; 456 } 457 458 @Override 459 public R visit(final ConditionalExpr n, final A arg) { 460 { 461 R result = n.getCondition().accept(this, arg); 462 if (result != null) { 463 return result; 464 } 465 } 466 { 467 R result = n.getThenExpr().accept(this, arg); 468 if (result != null) { 469 return result; 470 } 471 } 472 { 473 R result = n.getElseExpr().accept(this, arg); 474 if (result != null) { 475 return result; 476 } 477 } 478 return null; 479 } 480 481 @Override 482 public R visit(final ConstructorDeclaration n, final A arg) { 483 if (n.getJavaDoc() != null) { 484 { 485 R result = n.getJavaDoc().accept(this, arg); 486 if (result != null) { 487 return result; 488 } 489 } 490 } 491 if (n.getAnnotations() != null) { 492 for (final AnnotationExpr a : n.getAnnotations()) { 493 { 494 R result = a.accept(this, arg); 495 if (result != null) { 496 return result; 497 } 498 } 499 } 500 } 501 if (n.getTypeParameters() != null) { 502 for (final TypeParameter t : n.getTypeParameters()) { 503 { 504 R result = t.accept(this, arg); 505 if (result != null) { 506 return result; 507 } 508 } 509 } 510 } 511 if (n.getParameters() != null) { 512 for (final Parameter p : n.getParameters()) { 513 { 514 R result = p.accept(this, arg); 515 if (result != null) { 516 return result; 517 } 518 } 519 } 520 } 521 if (n.getThrows() != null) { 522 for (final NameExpr name : n.getThrows()) { 523 { 524 R result = name.accept(this, arg); 525 if (result != null) { 526 return result; 527 } 528 } 529 } 530 } 531 { 532 R result = n.getBlock().accept(this, arg); 533 if (result != null) { 534 return result; 535 } 536 } 537 return null; 538 } 539 540 @Override 541 public R visit(final ContinueStmt n, final A arg) { 542 return null; 543 } 544 545 @Override 546 public R visit(final DoStmt n, final A arg) { 547 { 548 R result = n.getBody().accept(this, arg); 549 if (result != null) { 550 return result; 551 } 552 } 553 { 554 R result = n.getCondition().accept(this, arg); 555 if (result != null) { 556 return result; 557 } 558 } 559 return null; 560 } 561 562 @Override 563 public R visit(final DoubleLiteralExpr n, final A arg) { 564 return null; 565 } 566 567 @Override 568 public R visit(final EmptyMemberDeclaration n, final A arg) { 569 if (n.getJavaDoc() != null) { 570 { 571 R result = n.getJavaDoc().accept(this, arg); 572 if (result != null) { 573 return result; 574 } 575 } 576 } 577 return null; 578 } 579 580 @Override 581 public R visit(final EmptyStmt n, final A arg) { 582 return null; 583 } 584 585 @Override 586 public R visit(final EmptyTypeDeclaration n, final A arg) { 587 if (n.getJavaDoc() != null) { 588 { 589 R result = n.getJavaDoc().accept(this, arg); 590 if (result != null) { 591 return result; 592 } 593 } 594 } 595 return null; 596 } 597 598 @Override 599 public R visit(final EnclosedExpr n, final A arg) { 600 { 601 R result = n.getInner().accept(this, arg); 602 if (result != null) { 603 return result; 604 } 605 } 606 return null; 607 } 608 609 @Override 610 public R visit(final EnumConstantDeclaration n, final A arg) { 611 if (n.getJavaDoc() != null) { 612 { 613 R result = n.getJavaDoc().accept(this, arg); 614 if (result != null) { 615 return result; 616 } 617 } 618 } 619 if (n.getAnnotations() != null) { 620 for (final AnnotationExpr a : n.getAnnotations()) { 621 { 622 R result = a.accept(this, arg); 623 if (result != null) { 624 return result; 625 } 626 } 627 } 628 } 629 if (n.getArgs() != null) { 630 for (final Expression e : n.getArgs()) { 631 { 632 R result = e.accept(this, arg); 633 if (result != null) { 634 return result; 635 } 636 } 637 } 638 } 639 if (n.getClassBody() != null) { 640 for (final BodyDeclaration member : n.getClassBody()) { 641 { 642 R result = member.accept(this, arg); 643 if (result != null) { 644 return result; 645 } 646 } 647 } 648 } 649 return null; 650 } 651 652 @Override 653 public R visit(final EnumDeclaration n, final A arg) { 654 if (n.getJavaDoc() != null) { 655 { 656 R result = n.getJavaDoc().accept(this, arg); 657 if (result != null) { 658 return result; 659 } 660 } 661 } 662 if (n.getAnnotations() != null) { 663 for (final AnnotationExpr a : n.getAnnotations()) { 664 { 665 R result = a.accept(this, arg); 666 if (result != null) { 667 return result; 668 } 669 } 670 } 671 } 672 if (n.getImplements() != null) { 673 for (final ClassOrInterfaceType c : n.getImplements()) { 674 { 675 R result = c.accept(this, arg); 676 if (result != null) { 677 return result; 678 } 679 } 680 } 681 } 682 if (n.getEntries() != null) { 683 for (final EnumConstantDeclaration e : n.getEntries()) { 684 { 685 R result = e.accept(this, arg); 686 if (result != null) { 687 return result; 688 } 689 } 690 } 691 } 692 if (n.getMembers() != null) { 693 for (final BodyDeclaration member : n.getMembers()) { 694 { 695 R result = member.accept(this, arg); 696 if (result != null) { 697 return result; 698 } 699 } 700 } 701 } 702 return null; 703 } 704 705 @Override 706 public R visit(final ExplicitConstructorInvocationStmt n, final A arg) { 707 if (!n.isThis()) { 708 if (n.getExpr() != null) { 709 { 710 R result = n.getExpr().accept(this, arg); 711 if (result != null) { 712 return result; 713 } 714 } 715 } 716 } 717 if (n.getTypeArgs() != null) { 718 for (final Type t : n.getTypeArgs()) { 719 { 720 R result = t.accept(this, arg); 721 if (result != null) { 722 return result; 723 } 724 } 725 } 726 } 727 if (n.getArgs() != null) { 728 for (final Expression e : n.getArgs()) { 729 { 730 R result = e.accept(this, arg); 731 if (result != null) { 732 return result; 733 } 734 } 735 } 736 } 737 return null; 738 } 739 740 @Override 741 public R visit(final ExpressionStmt n, final A arg) { 742 { 743 R result = n.getExpression().accept(this, arg); 744 if (result != null) { 745 return result; 746 } 747 } 748 return null; 749 } 750 751 @Override 752 public R visit(final FieldAccessExpr n, final A arg) { 753 { 754 R result = n.getScope().accept(this, arg); 755 if (result != null) { 756 return result; 757 } 758 } 759 return null; 760 } 761 762 @Override 763 public R visit(final FieldDeclaration n, final A arg) { 764 if (n.getJavaDoc() != null) { 765 { 766 R result = n.getJavaDoc().accept(this, arg); 767 if (result != null) { 768 return result; 769 } 770 } 771 } 772 if (n.getAnnotations() != null) { 773 for (final AnnotationExpr a : n.getAnnotations()) { 774 { 775 R result = a.accept(this, arg); 776 if (result != null) { 777 return result; 778 } 779 } 780 } 781 } 782 { 783 R result = n.getType().accept(this, arg); 784 if (result != null) { 785 return result; 786 } 787 } 788 for (final VariableDeclarator var : n.getVariables()) { 789 { 790 R result = var.accept(this, arg); 791 if (result != null) { 792 return result; 793 } 794 } 795 } 796 return null; 797 } 798 799 @Override 800 public R visit(final ForeachStmt n, final A arg) { 801 { 802 R result = n.getVariable().accept(this, arg); 803 if (result != null) { 804 return result; 805 } 806 } 807 { 808 R result = n.getIterable().accept(this, arg); 809 if (result != null) { 810 return result; 811 } 812 } 813 { 814 R result = n.getBody().accept(this, arg); 815 if (result != null) { 816 return result; 817 } 818 } 819 return null; 820 } 821 822 @Override 823 public R visit(final ForStmt n, final A arg) { 824 if (n.getInit() != null) { 825 for (final Expression e : n.getInit()) { 826 { 827 R result = e.accept(this, arg); 828 if (result != null) { 829 return result; 830 } 831 } 832 } 833 } 834 if (n.getCompare() != null) { 835 { 836 R result = n.getCompare().accept(this, arg); 837 if (result != null) { 838 return result; 839 } 840 } 841 } 842 if (n.getUpdate() != null) { 843 for (final Expression e : n.getUpdate()) { 844 { 845 R result = e.accept(this, arg); 846 if (result != null) { 847 return result; 848 } 849 } 850 } 851 } 852 { 853 R result = n.getBody().accept(this, arg); 854 if (result != null) { 855 return result; 856 } 857 } 858 return null; 859 } 860 861 @Override 862 public R visit(final IfStmt n, final A arg) { 863 { 864 R result = n.getCondition().accept(this, arg); 865 if (result != null) { 866 return result; 867 } 868 } 869 { 870 R result = n.getThenStmt().accept(this, arg); 871 if (result != null) { 872 return result; 873 } 874 } 875 if (n.getElseStmt() != null) { 876 { 877 R result = n.getElseStmt().accept(this, arg); 878 if (result != null) { 879 return result; 880 } 881 } 882 } 883 return null; 884 } 885 886 @Override 887 public R visit(final ImportDeclaration n, final A arg) { 888 { 889 R result = n.getName().accept(this, arg); 890 if (result != null) { 891 return result; 892 } 893 } 894 return null; 895 } 896 897 @Override 898 public R visit(final InitializerDeclaration n, final A arg) { 899 if (n.getJavaDoc() != null) { 900 { 901 R result = n.getJavaDoc().accept(this, arg); 902 if (result != null) { 903 return result; 904 } 905 } 906 } 907 { 908 R result = n.getBlock().accept(this, arg); 909 if (result != null) { 910 return result; 911 } 912 } 913 return null; 914 } 915 916 @Override 917 public R visit(final InstanceOfExpr n, final A arg) { 918 { 919 R result = n.getExpr().accept(this, arg); 920 if (result != null) { 921 return result; 922 } 923 } 924 { 925 R result = n.getType().accept(this, arg); 926 if (result != null) { 927 return result; 928 } 929 } 930 return null; 931 } 932 933 @Override 934 public R visit(final IntegerLiteralExpr n, final A arg) { 935 return null; 936 } 937 938 @Override 939 public R visit(final IntegerLiteralMinValueExpr n, final A arg) { 940 return null; 941 } 942 943 @Override 944 public R visit(final JavadocComment n, final A arg) { 945 return null; 946 } 947 948 @Override 949 public R visit(final LabeledStmt n, final A arg) { 950 { 951 R result = n.getStmt().accept(this, arg); 952 if (result != null) { 953 return result; 954 } 955 } 956 return null; 957 } 958 959 @Override 960 public R visit(final LongLiteralExpr n, final A arg) { 961 return null; 962 } 963 964 @Override 965 public R visit(final LongLiteralMinValueExpr n, final A arg) { 966 return null; 967 } 968 969 @Override 970 public R visit(final MarkerAnnotationExpr n, final A arg) { 971 { 972 R result = n.getName().accept(this, arg); 973 if (result != null) { 974 return result; 975 } 976 } 977 return null; 978 } 979 980 @Override 981 public R visit(final MemberValuePair n, final A arg) { 982 { 983 R result = n.getValue().accept(this, arg); 984 if (result != null) { 985 return result; 986 } 987 } 988 return null; 989 } 990 991 @Override 992 public R visit(final MethodCallExpr n, final A arg) { 993 if (n.getScope() != null) { 994 { 995 R result = n.getScope().accept(this, arg); 996 if (result != null) { 997 return result; 998 } 999 } 1000 } 1001 if (n.getTypeArgs() != null) { 1002 for (final Type t : n.getTypeArgs()) { 1003 { 1004 R result = t.accept(this, arg); 1005 if (result != null) { 1006 return result; 1007 } 1008 } 1009 } 1010 } 1011 if (n.getArgs() != null) { 1012 for (final Expression e : n.getArgs()) { 1013 { 1014 R result = e.accept(this, arg); 1015 if (result != null) { 1016 return result; 1017 } 1018 } 1019 } 1020 } 1021 return null; 1022 } 1023 1024 @Override 1025 public R visit(final MethodDeclaration n, final A arg) { 1026 if (n.getJavaDoc() != null) { 1027 { 1028 R result = n.getJavaDoc().accept(this, arg); 1029 if (result != null) { 1030 return result; 1031 } 1032 } 1033 } 1034 if (n.getAnnotations() != null) { 1035 for (final AnnotationExpr a : n.getAnnotations()) { 1036 { 1037 R result = a.accept(this, arg); 1038 if (result != null) { 1039 return result; 1040 } 1041 } 1042 } 1043 } 1044 if (n.getTypeParameters() != null) { 1045 for (final TypeParameter t : n.getTypeParameters()) { 1046 { 1047 R result = t.accept(this, arg); 1048 if (result != null) { 1049 return result; 1050 } 1051 } 1052 } 1053 } 1054 { 1055 R result = n.getType().accept(this, arg); 1056 if (result != null) { 1057 return result; 1058 } 1059 } 1060 if (n.getParameters() != null) { 1061 for (final Parameter p : n.getParameters()) { 1062 { 1063 R result = p.accept(this, arg); 1064 if (result != null) { 1065 return result; 1066 } 1067 } 1068 } 1069 } 1070 if (n.getThrows() != null) { 1071 for (final NameExpr name : n.getThrows()) { 1072 { 1073 R result = name.accept(this, arg); 1074 if (result != null) { 1075 return result; 1076 } 1077 } 1078 } 1079 } 1080 if (n.getBody() != null) { 1081 { 1082 R result = n.getBody().accept(this, arg); 1083 if (result != null) { 1084 return result; 1085 } 1086 } 1087 } 1088 return null; 1089 } 1090 1091 @Override 1092 public R visit(final NameExpr n, final A arg) { 1093 return null; 1094 } 1095 1096 @Override 1097 public R visit(final NormalAnnotationExpr n, final A arg) { 1098 { 1099 R result = n.getName().accept(this, arg); 1100 if (result != null) { 1101 return result; 1102 } 1103 } 1104 if (n.getPairs() != null) { 1105 for (final MemberValuePair m : n.getPairs()) { 1106 { 1107 R result = m.accept(this, arg); 1108 if (result != null) { 1109 return result; 1110 } 1111 } 1112 } 1113 } 1114 return null; 1115 } 1116 1117 @Override 1118 public R visit(final NullLiteralExpr n, final A arg) { 1119 return null; 1120 } 1121 1122 @Override 1123 public R visit(final ObjectCreationExpr n, final A arg) { 1124 if (n.getScope() != null) { 1125 { 1126 R result = n.getScope().accept(this, arg); 1127 if (result != null) { 1128 return result; 1129 } 1130 } 1131 } 1132 if (n.getTypeArgs() != null) { 1133 for (final Type t : n.getTypeArgs()) { 1134 { 1135 R result = t.accept(this, arg); 1136 if (result != null) { 1137 return result; 1138 } 1139 } 1140 } 1141 } 1142 { 1143 R result = n.getType().accept(this, arg); 1144 if (result != null) { 1145 return result; 1146 } 1147 } 1148 if (n.getArgs() != null) { 1149 for (final Expression e : n.getArgs()) { 1150 { 1151 R result = e.accept(this, arg); 1152 if (result != null) { 1153 return result; 1154 } 1155 } 1156 } 1157 } 1158 if (n.getAnonymousClassBody() != null) { 1159 for (final BodyDeclaration member : n.getAnonymousClassBody()) { 1160 { 1161 R result = member.accept(this, arg); 1162 if (result != null) { 1163 return result; 1164 } 1165 } 1166 } 1167 } 1168 return null; 1169 } 1170 1171 @Override 1172 public R visit(final PackageDeclaration n, final A arg) { 1173 if (n.getAnnotations() != null) { 1174 for (final AnnotationExpr a : n.getAnnotations()) { 1175 { 1176 R result = a.accept(this, arg); 1177 if (result != null) { 1178 return result; 1179 } 1180 } 1181 } 1182 } 1183 { 1184 R result = n.getName().accept(this, arg); 1185 if (result != null) { 1186 return result; 1187 } 1188 } 1189 return null; 1190 } 1191 1192 @Override 1193 public R visit(final Parameter n, final A arg) { 1194 if (n.getAnnotations() != null) { 1195 for (final AnnotationExpr a : n.getAnnotations()) { 1196 { 1197 R result = a.accept(this, arg); 1198 if (result != null) { 1199 return result; 1200 } 1201 } 1202 } 1203 } 1204 { 1205 R result = n.getType().accept(this, arg); 1206 if (result != null) { 1207 return result; 1208 } 1209 } 1210 { 1211 R result = n.getId().accept(this, arg); 1212 if (result != null) { 1213 return result; 1214 } 1215 } 1216 return null; 1217 } 1218 1219 @Override 1220 public R visit(final MultiTypeParameter n, final A arg) { 1221 if (n.getAnnotations() != null) { 1222 for (final AnnotationExpr a : n.getAnnotations()) { 1223 { 1224 R result = a.accept(this, arg); 1225 if (result != null) { 1226 return result; 1227 } 1228 } 1229 } 1230 } 1231 { 1232 for (final Type type : n.getTypes()) { 1233 R result = type.accept(this, arg); 1234 if (result != null) { 1235 return result; 1236 } 1237 } 1238 } 1239 { 1240 R result = n.getId().accept(this, arg); 1241 if (result != null) { 1242 return result; 1243 } 1244 } 1245 return null; 1246 } 1247 1248 @Override 1249 public R visit(final PrimitiveType n, final A arg) { 1250 return null; 1251 } 1252 1253 @Override 1254 public R visit(final QualifiedNameExpr n, final A arg) { 1255 { 1256 R result = n.getQualifier().accept(this, arg); 1257 if (result != null) { 1258 return result; 1259 } 1260 } 1261 return null; 1262 } 1263 1264 @Override 1265 public R visit(final ReferenceType n, final A arg) { 1266 { 1267 R result = n.getType().accept(this, arg); 1268 if (result != null) { 1269 return result; 1270 } 1271 } 1272 return null; 1273 } 1274 1275 @Override 1276 public R visit(final ReturnStmt n, final A arg) { 1277 if (n.getExpr() != null) { 1278 { 1279 R result = n.getExpr().accept(this, arg); 1280 if (result != null) { 1281 return result; 1282 } 1283 } 1284 } 1285 return null; 1286 } 1287 1288 @Override 1289 public R visit(final SingleMemberAnnotationExpr n, final A arg) { 1290 { 1291 R result = n.getName().accept(this, arg); 1292 if (result != null) { 1293 return result; 1294 } 1295 } 1296 { 1297 R result = n.getMemberValue().accept(this, arg); 1298 if (result != null) { 1299 return result; 1300 } 1301 } 1302 return null; 1303 } 1304 1305 @Override 1306 public R visit(final StringLiteralExpr n, final A arg) { 1307 return null; 1308 } 1309 1310 @Override 1311 public R visit(final SuperExpr n, final A arg) { 1312 if (n.getClassExpr() != null) { 1313 { 1314 R result = n.getClassExpr().accept(this, arg); 1315 if (result != null) { 1316 return result; 1317 } 1318 } 1319 } 1320 return null; 1321 } 1322 1323 @Override 1324 public R visit(final SwitchEntryStmt n, final A arg) { 1325 if (n.getLabel() != null) { 1326 { 1327 R result = n.getLabel().accept(this, arg); 1328 if (result != null) { 1329 return result; 1330 } 1331 } 1332 } 1333 if (n.getStmts() != null) { 1334 for (final Statement s : n.getStmts()) { 1335 { 1336 R result = s.accept(this, arg); 1337 if (result != null) { 1338 return result; 1339 } 1340 } 1341 } 1342 } 1343 return null; 1344 } 1345 1346 @Override 1347 public R visit(final SwitchStmt n, final A arg) { 1348 { 1349 R result = n.getSelector().accept(this, arg); 1350 if (result != null) { 1351 return result; 1352 } 1353 } 1354 if (n.getEntries() != null) { 1355 for (final SwitchEntryStmt e : n.getEntries()) { 1356 { 1357 R result = e.accept(this, arg); 1358 if (result != null) { 1359 return result; 1360 } 1361 } 1362 } 1363 } 1364 return null; 1365 1366 } 1367 1368 @Override 1369 public R visit(final SynchronizedStmt n, final A arg) { 1370 { 1371 if (n.getExpr() != null) { 1372 R result = n.getExpr().accept(this, arg); 1373 if (result != null) { 1374 return result; 1375 } 1376 } 1377 } 1378 { 1379 R result = n.getBlock().accept(this, arg); 1380 if (result != null) { 1381 return result; 1382 } 1383 } 1384 return null; 1385 } 1386 1387 @Override 1388 public R visit(final ThisExpr n, final A arg) { 1389 if (n.getClassExpr() != null) { 1390 { 1391 R result = n.getClassExpr().accept(this, arg); 1392 if (result != null) { 1393 return result; 1394 } 1395 } 1396 } 1397 return null; 1398 } 1399 1400 @Override 1401 public R visit(final ThrowStmt n, final A arg) { 1402 { 1403 R result = n.getExpr().accept(this, arg); 1404 if (result != null) { 1405 return result; 1406 } 1407 } 1408 return null; 1409 } 1410 1411 @Override 1412 public R visit(final TryStmt n, final A arg) { 1413 if (n.getResources() != null) { 1414 for (final VariableDeclarationExpr v : n.getResources()) { 1415 { 1416 R result = v.accept(this, arg); 1417 if (result != null) { 1418 return result; 1419 } 1420 } 1421 } 1422 } 1423 { 1424 R result = n.getTryBlock().accept(this, arg); 1425 if (result != null) { 1426 return result; 1427 } 1428 } 1429 if (n.getCatchs() != null) { 1430 for (final CatchClause c : n.getCatchs()) { 1431 { 1432 R result = c.accept(this, arg); 1433 if (result != null) { 1434 return result; 1435 } 1436 } 1437 } 1438 } 1439 if (n.getFinallyBlock() != null) { 1440 { 1441 R result = n.getFinallyBlock().accept(this, arg); 1442 if (result != null) { 1443 return result; 1444 } 1445 } 1446 } 1447 return null; 1448 } 1449 1450 @Override 1451 public R visit(final TypeDeclarationStmt n, final A arg) { 1452 { 1453 R result = n.getTypeDeclaration().accept(this, arg); 1454 if (result != null) { 1455 return result; 1456 } 1457 } 1458 return null; 1459 } 1460 1461 @Override 1462 public R visit(final TypeParameter n, final A arg) { 1463 if (n.getTypeBound() != null) { 1464 for (final ClassOrInterfaceType c : n.getTypeBound()) { 1465 { 1466 R result = c.accept(this, arg); 1467 if (result != null) { 1468 return result; 1469 } 1470 } 1471 } 1472 } 1473 return null; 1474 } 1475 1476 @Override 1477 public R visit(final UnaryExpr n, final A arg) { 1478 { 1479 R result = n.getExpr().accept(this, arg); 1480 if (result != null) { 1481 return result; 1482 } 1483 } 1484 return null; 1485 } 1486 1487 @Override 1488 public R visit(final UnknownType n, final A arg) { 1489 return null; 1490 } 1491 1492 @Override 1493 public R visit(final VariableDeclarationExpr n, final A arg) { 1494 if (n.getAnnotations() != null) { 1495 for (final AnnotationExpr a : n.getAnnotations()) { 1496 { 1497 R result = a.accept(this, arg); 1498 if (result != null) { 1499 return result; 1500 } 1501 } 1502 } 1503 } 1504 { 1505 R result = n.getType().accept(this, arg); 1506 if (result != null) { 1507 return result; 1508 } 1509 } 1510 for (final VariableDeclarator v : n.getVars()) { 1511 { 1512 R result = v.accept(this, arg); 1513 if (result != null) { 1514 return result; 1515 } 1516 } 1517 } 1518 return null; 1519 } 1520 1521 @Override 1522 public R visit(final VariableDeclarator n, final A arg) { 1523 { 1524 R result = n.getId().accept(this, arg); 1525 if (result != null) { 1526 return result; 1527 } 1528 } 1529 if (n.getInit() != null) { 1530 { 1531 R result = n.getInit().accept(this, arg); 1532 if (result != null) { 1533 return result; 1534 } 1535 } 1536 } 1537 return null; 1538 } 1539 1540 @Override 1541 public R visit(final VariableDeclaratorId n, final A arg) { 1542 return null; 1543 } 1544 1545 @Override 1546 public R visit(final VoidType n, final A arg) { 1547 return null; 1548 } 1549 1550 @Override 1551 public R visit(final WhileStmt n, final A arg) { 1552 { 1553 R result = n.getCondition().accept(this, arg); 1554 if (result != null) { 1555 return result; 1556 } 1557 } 1558 { 1559 R result = n.getBody().accept(this, arg); 1560 if (result != null) { 1561 return result; 1562 } 1563 } 1564 return null; 1565 } 1566 1567 @Override 1568 public R visit(final WildcardType n, final A arg) { 1569 if (n.getExtends() != null) { 1570 { 1571 R result = n.getExtends().accept(this, arg); 1572 if (result != null) { 1573 return result; 1574 } 1575 } 1576 } 1577 if (n.getSuper() != null) { 1578 { 1579 R result = n.getSuper().accept(this, arg); 1580 if (result != null) { 1581 return result; 1582 } 1583 } 1584 } 1585 return null; 1586 } 1587 1588 @Override 1589 public R visit(LambdaExpr n, A arg) { 1590 return null; 1591 } 1592 1593 @Override 1594 public R visit(MethodReferenceExpr n, A arg){ 1595 return null; 1596 } 1597 1598 @Override 1599 public R visit(TypeExpr n, A arg){ 1600 return null; 1601 } 1602 1603 @Override 1604 public R visit(final BlockComment n, final A arg) { 1605 return null; 1606 } 1607 1608 @Override 1609 public R visit(final LineComment n, final A arg) { 1610 return null; 1611 } 1612 1613 } 1614